lock (typeof (SqlMapper))
{
...
}
程式碼分析給出了 CA2002
不知道為什麼會寫出 lock typeof object的東西,這樣真的能鎖住東西?
lock (typeof (SqlMapper))
{
...
}
using (StreamReader sr = new StreamReader(inputStream))
{
using (CsvReader csvReader = new CsvReader(sr))
{
..
}
}
就會出現警告 CA2202:不要多次處置物件的 Dispose方法If an object's Dispose method is called more than once, the object must ignore all calls after the first one. The object must not throw an exception if its Dispose method is called multiple times. Instance methods other than Dispose can throw an ObjectDisposedException when resources are already disposed.
[SuppressMessage("Microsoft.Usage", "CA2202:Do not dispose objects multiple times")]
public byte[] FunctionName(...) {
var strNum = "10000"
var parseNum = parseInt(strNum)
var multiplyNum = strNum * 1
typeof strNum
// "string"
typeof parseNum
// "number"
typeof multiplyNum
// "number"
parseNum
// 10000
multiplyNum
// 10000
function testA(time, str) {
for (i=0;i<time;++i) {
var tmp = parseInt(str);
}
}
function testB(time, str) {
for (i=0;i<time;++i) {
var tmp = str * 1;
}
}
console.time('testA');
testA(10000000, "12345678");
console.timeEnd('testA');
// testA: 1226.073974609375ms
console.time('testB');
testB(10000000, "12345678");
console.timeEnd('testB');
// testB: 622.14208984375ms
console.time('testA');
testA(10000000, "82736491");
console.timeEnd('testA');
// testA: 1202.213134765625ms
console.time('testB');
testB(10000000, "82736491");
console.timeEnd('testB');
// testB: 619.800048828125ms
console.time('testA');
testA(10000000, "1");
console.timeEnd('testA');
// testA: 95.97900390625ms
console.time('testB');
testB(10000000, "1");
console.timeEnd('testB');
// testB: 67.47216796875ms
console.time('testA');
testA(10000000, "");
console.timeEnd('testA');
// testA: 719.873779296875ms
console.time('testB');
testB(10000000, "");
console.timeEnd('testB');
// testB: 235.06103515625ms
console.time('testA');
testA(10000000, "0");
console.timeEnd('testA');
// testA: 92.878173828125ms
console.time('testB');
testB(10000000, "0");
console.timeEnd('testB');
// testB: 74.76416015625ms
window.resizeTo(screen.width, screen.height)
/*
TestDB 的部署指令碼
這段程式由工具產生。
...
*/
...
:setvar DatabaseName "TestDB"
:setvar DefaultFilePrefix "TestDB"
...
/* 偵測 SQLCMD 模式,如果不支援 SQLCMD 模式,則停用指令碼執行。
...
*/
...
sqlcmd -S TestDB -U userId -P password -i C:\TestDB_Update.publish.sql -o C:\output.txt
var result = '0,0.' + Array(decimalPlace + 1).join('0')
result = result.replace(/\.\s*$/, "");
decimalPlace 0: "0,0"<input type="button" value="Import" style="positionL fixed; z-index: 10000; top: 95%; left: 5px;" onclick="$('#importFile').click()" />
<input id="importFile" type="file" style="position: fixed; z-index: 10000l top: -100px; left: -100px;" onchange="Import(this)" />
function Import(fileInput) {
var reader;
if(window.File && window.FileReader && window.FileList && window.Blob) {
reader = new FileReader();
}
else {
return;
}
var txtContent;
if(fileInput.files && fileInput.files[0]) {
reader.onload = function (e) {
txtContent = e.target.result;
console.log(txtContent);
// Custom Code
// End of Custom Code
}
reader.readAsText(fileInput.files[0]);
//Reset
fileInput.value = '';
}
}
$('.modal').on('hide.bs.modal', function (e) {
if (CheckClosedByBtnOK()) {
if (!ValidInput()) {
e.preventDefault();
e.stopImmediatePropagation();
}
}
else {
ResetInput();
}
});
但是發現使用 datepicker選完日期並關閉小視窗後也會觸發 hide.bs.modal,導致每次選完值就還原,有選跟沒選一樣$('.modal').on('hidden.bs.modal', function (e) { ...
現在不會選完值就還原了,也就是 hidden.bs.modal只有在 modal關閉時才會觸發,datepicker關閉時不會| hide.bs.modal | This event is fired immediately when the hide instance method has been called. |
| hidden.bs.modal | This event is fired when the modal has finished being hidden from the user (will wait for CSS transitions to complete). |
$('.modal').on('hide.bs.modal', function (e) {
console.log(this);
console.log('hide');
}).on('hidden.bs.modal', function (e) {
console.log(this);
console.log('hidden');
});
得出 hidden.bs.modal是在 modal被關閉後才觸發,所以 preventDefault當然沒有效果var isUsingDatepicker = false;
$('.modal').on('show.bs.modal', function (e) {
isUsingDatepicker = ($(div.datepicker-dropdown).length > 0);
}).on('hide.bs.modal', function (e) {
if (!isUsingDatepicker) {
if (CheckClosedByBtnOK()) {
if (!ValidInput()) {
e.preventDefault();
e.stopImmediatePropagation();
}
}
else {
ResetInput();
}
}
isUsingDatepicker = ($(div.datepicker-dropdown).length > 0);
});