C#,ASP.Net開発ノート
8865 ワード
1.クラスメソッドと拡張メソッドの違い:
TestClass test = null ;
test.ExtendMethod() ;//拡張方法は間違いなく、方法で対象が空かどうかを判断できます.
public static T FuncReturnSelf(this T Self, string param)
{
...
return Self ;
}
2.Serializable AttributeとISerializableの違い:
ISerializableは、オブジェクト全体のプロパティをシーケンス化できます.親を含めます.比較的完全なシーケンス化です.
3. イベントの委任ですか、それともインタフェースの実装を構成しますか。
下位レベルでは、機能を上位レベルに開放する実装スキームです.1つは、コンフィギュレーションによって、あるインタフェースを実装する実装をコンフィギュレーションし、下位レベルでオブジェクトインスタンス(重点キャッシュオブジェクト)を反射し、あるメソッドを呼び出すことです.高レベルのカスタムコードが必要な場合に便利です.
上位レベルの機能、または関数だけが必要な場合は、1つのイベントが委任されたことを暴露し、上位レベルにイベントを実現させることができます.
4.属性名、メソッド名、クラス名は同じクラスにあり、同じ名前は使用できません。
子クラスの属性名が親クラスのメソッド名と同じ名前である場合、警告が表示されます.しかし、使用の妨げにはならない.
5.業務ロジックでは、まず不正な条件の判断を行い、判断と業務ロジックを分ける.
6.Mvcは一種の思想であり、多くの場所に応用できる。
例えば、業務ロジックにおいて、業務処理層の間でこのModelを用いる、業務層でデータを処理し、ビュー層でメッセージを処理するModelを定義する.
7.約束は配置より優れている.
8.漏斗モデルに基づくIO.
すなわち、厳密な出力、ゆとりのある入力である.
例:public string proc ( string msg)
{
return msg.Trim() ; //
}
public check( string msg)
{
if ( msg.Trim() == "Edit") return true ; // 。
else return false ;
}
9.技術的に業務ミスを回避する。
例えば同時性ビジネスシーン:ユーザーは毎年固定ファイル名のファイルをアップロードする.開発者は当然固定ファイル名で固定フォルダの下に保存する.最低でもロックして
10.反射による汎用クラスの作成 var type = typeof(SystemException);
var obj = Activator.CreateInstance(
typeof(List<>).MakeGenericType(new Type[] { type }),
BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance,
null, null, null);
11. ロックはマルチCPU、マルチコアCPUに対して反発する.
12.辞書の初期化 Dictionary<int, StudentName> students = new Dictionary<int, StudentName>()
{
{ 111, new StudentName {FirstName="Sachin", LastName="Karnik", ID=211}},
{ 112, new StudentName {FirstName="Dina", LastName="Salimzianova", ID=317}},
{ 113, new StudentName {FirstName="Andy", LastName="Ruth", ID=198}}
};
13.四捨五入の問題: (int)( value + 0.5) .
14.前にデバッグで出会ったこの問題は、再び発生し、意外にも忘れて、しっかり覚えています。 , , :
public static implicit operator StringLinker(string StringOne){ return new StringLinker(StringOne) ;}
しかし、Stringの値が中間プロセスでobjectとして箱詰めされる場合、object obj=value; var result = (StringLinker)obj ; StringLinkerが定義した変換方法がobjectからStringLinkerに移行していないため、この行のコードはタイプ変換をトリガーしません.必要(StringLiner)(string)obj;汎用型を用いると、汎用型変換は無効である. var result = (StringLinker)(D)obj ; ゞ悲催.!ゞ
同様の問題は、拡張メソッドにも現れ、拡張メソッド名とクラスに現れるメソッドが重複すると、拡張メソッド名が無効になります.次のようになります.
public static string ToJson(this object obj){ return obj.ToJsonString();}
public class MyOqlSet
{
public string ToJson(){ return this.ToJsonString(); }
}
var set = new MyOqlSet() ;
set.ToJson() ;
この時、MyOqlSet.ToJson()メソッドが機能します.
もしそうなら:
public string Serialize(object obj )
{
obj.ToJson() ;}
このとき、拡張方法が役立ちます.
15.Mvc 2デザインがあまりよくないところ
URLルーティングがそうである場合:{Controller}/{Action}/{uid}である.aspx,Actionメソッドはpublic ActionResult Add(string uid)でなければなりません
メソッドパラメータの名前はルーティング中のuidである.表意性がない異なるアクションuidの意味は異なる.ここは気分が悪いところです.
考えてみれば理由がある.URLパラメータとメソッドパラメータとが一致する.次のようになります.
Admin/Dept/List.aspx?Type=Allは、public ActionResult List(string uid,string Type)と一致します.
しかし、public ActionResult Add(string uid)が同時に存在する場合は、エラーが報告される.2つ目の不快な場所です
16. C#実現できない方法
1.2つのIEnumerableを加算し、減算はa+b,a-b形式を採用する.
これは、リスト、リロード+、-演算子から継承されるクラスを実現することができます.
17.保護されたメモリの読み取りまたは書き込みを試みます。これは通常、他のメモリが破損していることを示します。
プロジェクトで実際にこの問題に遭遇したのは,EmitによってNullオブジェクトに付与操作を行ったためである.
18.VS 2010ショートカット記録
次のエラー:Ctrl+Shift+F 12、再構築時に大量のエラーが発生する可能性があります.これにより、迅速に位置決めできます.
アノテーション、アノテーション解除:Ctrl+C、Ctrl+K
項目で選択した単語を参照する方法:Shift+Ctrl+F 12.偶然出会った.
VSでエラー自動ブレークポイントを設定:Ctrl+Alt+E.
19汎用パラメータを設定するテクニック
次の方法を定義します.
public MyOqlSet LoadDictList( List> Source ){ return null ;}
このように定義する場合、入力パラメータも厳格なListでなければならない.以下はコンパイルに失敗する.
new MyOqlSet().LoadDictList( new List>() ) ;
次のように定義された汎用コンストレイントに変更します.
public MyOqlSet LoadDictList( List Source) where T: IDictionary { return null ;}
できます.
20 Transaction.Current
現在のTransactionScopeのみが取得でき、DbTransactionについてはどうしようもなく、現在の接続でしか判断できません:conn.Transaction
21分散トランザクション
http://msdn.microsoft.com/zh-cn/library/system.transactions.transactionscope(VS.80).aspx
上の例では、間違いを食べてしまったという大きな間違いを犯しています.
異常が発生した場合、scopeはすべきではありません.Completeです.
正しい方法は次のとおりです.
using ( var tran = new TransactionScope())
{
try
{
proc1();
dbr.Insert.Execute();
tran.Complete();
}
catch
{
Log();
}
}
また、proc 1でトランザクションが使用されている場合、ストレージ中にトランザクションがコミットされてもdbr.Insertエラーが発生すると、ストレージ・プロシージャの操作もロールバックされます.そしてエラーを投げ出す.
22明示的な実装インタフェース
明示的に実装インタフェースは、string実装のIConvertibleのように直接呼び出すことはできません.呼び出す場合は、必要です:(「hello」as IConvertible).ToSingle(null) ;
23参照オブジェクトが渡されると、関数はその内容のみを変更でき、アドレスは変更できません。 static void Main(string[] args)
{
var dict = new Dictionary<string, string>();
update(dict);
dict.All(o =>
{
Console.WriteLine(o.Key + ":" + o.Value);
return true;
});
}
private static void update(Dictionary<string, string> dict)
{
dict = new Dictionary<string, string>();
dict["id"] = "1";
}
上記dictのアドレスを再指定したため、Mainから何も出力されません.dictを初期化して削除すれば目的を達成できます.
24暗黙ベースクラス
Arrayは配列の暗黙的なベースクラスです
Value Typeは値タイプの暗黙ベースクラスです
Enumはenum列挙の暗黙的ベースクラスである
MulticastDelegateはdelegateのベースクラスです.
25 MvcのサーバTransfer機能
サーバを使用できます.TransferRequestメソッドが実装されます.
26反射取得属性の場合、重複する属性値が得られる
タイプが属性を定義する場合、ベースクラスと同じ属性定義を使用し、newを使用して上書きされます.(ベースクラスの属性は虚ではない)、typeを使用している.GetProperties(BindingFlags.Public|BindingFlags.Instance)の場合、2つの属性値が得られます.サブクラス属性は前、ベースクラスは後です.
これを避けるには、System.ComponentModel.TypeDescriptor.GetPropertiesメソッド.ベースクラス属性がサブクラス属性と同じである場合、サブクラス属性が返されます.
27 Dos継続文字
http://www.newsmth.net/nForum/#!article/DOS/16444
Dos継続文字は:^
Jsの継続文字は
28. バイナリのビット設定
バイナリはあるビットの設定を増加します:a|b;
バイナリ減少あるビット設定:a&(~b);
29. FileSystemWatcher
30. クラスはクラス呼び出しにのみ使用されます。
public class呼び出しクラス
{
private class呼び出しクラス{
internal voidメソッド(){}
}
//勝手に呼び出しましょう.
}
31.インバータコヒーレンス
http://www.cnblogs.com/LoveJenny/archive/2012/03/13/2392747.html
結論:
は、Tが戻り値としてしかできないことを示す.
は、Tが入力値としてのみ使用可能であることを示す.
32. Web.コンフィグファイルのサイズに関する単位
一般的にKB、例えばmaxRequestLength
プログラム内のファイルサイズは、一般的にByte、例えばファイルのストリーム長です.
33.マルチスレッド
スレッドプールのスレッド数に影響を与える鍵は、SetMaxThreadsではなく、ThreadPoolのSetMinThreadsプロパティです.SetMaxThreadsは必要に応じて徐々に成長します.
QueueUserWorkItemとAction,FuncのBeginInvokeは同じである:スレッドプールSetMinThreadsの影響を受け,呼び出し後すぐにスレッドプールキューに入って実行を待ち,すぐに戻る.キューのサイズを制御できません.
{
...
return Self ;
}
2.Serializable AttributeとISerializableの違い:
ISerializableは、オブジェクト全体のプロパティをシーケンス化できます.親を含めます.比較的完全なシーケンス化です.
3. イベントの委任ですか、それともインタフェースの実装を構成しますか。
下位レベルでは、機能を上位レベルに開放する実装スキームです.1つは、コンフィギュレーションによって、あるインタフェースを実装する実装をコンフィギュレーションし、下位レベルでオブジェクトインスタンス(重点キャッシュオブジェクト)を反射し、あるメソッドを呼び出すことです.高レベルのカスタムコードが必要な場合に便利です.
上位レベルの機能、または関数だけが必要な場合は、1つのイベントが委任されたことを暴露し、上位レベルにイベントを実現させることができます.
4.属性名、メソッド名、クラス名は同じクラスにあり、同じ名前は使用できません。
子クラスの属性名が親クラスのメソッド名と同じ名前である場合、警告が表示されます.しかし、使用の妨げにはならない.
5.業務ロジックでは、まず不正な条件の判断を行い、判断と業務ロジックを分ける.
6.Mvcは一種の思想であり、多くの場所に応用できる。
例えば、業務ロジックにおいて、業務処理層の間でこのModelを用いる、業務層でデータを処理し、ビュー層でメッセージを処理するModelを定義する.
7.約束は配置より優れている.
8.漏斗モデルに基づくIO.
すなわち、厳密な出力、ゆとりのある入力である.
例:public string proc ( string msg)
{
return msg.Trim() ; //
}
public check( string msg)
{
if ( msg.Trim() == "Edit") return true ; // 。
else return false ;
}
9.技術的に業務ミスを回避する。
例えば同時性ビジネスシーン:ユーザーは毎年固定ファイル名のファイルをアップロードする.開発者は当然固定ファイル名で固定フォルダの下に保存する.最低でもロックして
10.反射による汎用クラスの作成 var type = typeof(SystemException);
var obj = Activator.CreateInstance(
typeof(List<>).MakeGenericType(new Type[] { type }),
BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance,
null, null, null);
11. ロックはマルチCPU、マルチコアCPUに対して反発する.
12.辞書の初期化 Dictionary<int, StudentName> students = new Dictionary<int, StudentName>()
{
{ 111, new StudentName {FirstName="Sachin", LastName="Karnik", ID=211}},
{ 112, new StudentName {FirstName="Dina", LastName="Salimzianova", ID=317}},
{ 113, new StudentName {FirstName="Andy", LastName="Ruth", ID=198}}
};
13.四捨五入の問題: (int)( value + 0.5) .
14.前にデバッグで出会ったこの問題は、再び発生し、意外にも忘れて、しっかり覚えています。 , , :
public static implicit operator StringLinker(string StringOne){ return new StringLinker(StringOne) ;}
しかし、Stringの値が中間プロセスでobjectとして箱詰めされる場合、object obj=value; var result = (StringLinker)obj ; StringLinkerが定義した変換方法がobjectからStringLinkerに移行していないため、この行のコードはタイプ変換をトリガーしません.必要(StringLiner)(string)obj;汎用型を用いると、汎用型変換は無効である. var result = (StringLinker)(D)obj ; ゞ悲催.!ゞ
同様の問題は、拡張メソッドにも現れ、拡張メソッド名とクラスに現れるメソッドが重複すると、拡張メソッド名が無効になります.次のようになります.
public static string ToJson(this object obj){ return obj.ToJsonString();}
public class MyOqlSet
{
public string ToJson(){ return this.ToJsonString(); }
}
var set = new MyOqlSet() ;
set.ToJson() ;
この時、MyOqlSet.ToJson()メソッドが機能します.
もしそうなら:
public string Serialize(object obj )
{
obj.ToJson() ;}
このとき、拡張方法が役立ちます.
15.Mvc 2デザインがあまりよくないところ
URLルーティングがそうである場合:{Controller}/{Action}/{uid}である.aspx,Actionメソッドはpublic ActionResult Add(string uid)でなければなりません
メソッドパラメータの名前はルーティング中のuidである.表意性がない異なるアクションuidの意味は異なる.ここは気分が悪いところです.
考えてみれば理由がある.URLパラメータとメソッドパラメータとが一致する.次のようになります.
Admin/Dept/List.aspx?Type=Allは、public ActionResult List(string uid,string Type)と一致します.
しかし、public ActionResult Add(string uid)が同時に存在する場合は、エラーが報告される.2つ目の不快な場所です
16. C#実現できない方法
1.2つのIEnumerableを加算し、減算はa+b,a-b形式を採用する.
これは、リスト、リロード+、-演算子から継承されるクラスを実現することができます.
17.保護されたメモリの読み取りまたは書き込みを試みます。これは通常、他のメモリが破損していることを示します。
プロジェクトで実際にこの問題に遭遇したのは,EmitによってNullオブジェクトに付与操作を行ったためである.
18.VS 2010ショートカット記録
次のエラー:Ctrl+Shift+F 12、再構築時に大量のエラーが発生する可能性があります.これにより、迅速に位置決めできます.
アノテーション、アノテーション解除:Ctrl+C、Ctrl+K
項目で選択した単語を参照する方法:Shift+Ctrl+F 12.偶然出会った.
VSでエラー自動ブレークポイントを設定:Ctrl+Alt+E.
19汎用パラメータを設定するテクニック
次の方法を定義します.
public MyOqlSet LoadDictList( List> Source ){ return null ;}
このように定義する場合、入力パラメータも厳格なListでなければならない.以下はコンパイルに失敗する.
new MyOqlSet().LoadDictList( new List>() ) ;
次のように定義された汎用コンストレイントに変更します.
public MyOqlSet LoadDictList( List Source) where T: IDictionary { return null ;}
できます.
20 Transaction.Current
現在のTransactionScopeのみが取得でき、DbTransactionについてはどうしようもなく、現在の接続でしか判断できません:conn.Transaction
21分散トランザクション
http://msdn.microsoft.com/zh-cn/library/system.transactions.transactionscope(VS.80).aspx
上の例では、間違いを食べてしまったという大きな間違いを犯しています.
異常が発生した場合、scopeはすべきではありません.Completeです.
正しい方法は次のとおりです.
using ( var tran = new TransactionScope())
{
try
{
proc1();
dbr.Insert.Execute();
tran.Complete();
}
catch
{
Log();
}
}
また、proc 1でトランザクションが使用されている場合、ストレージ中にトランザクションがコミットされてもdbr.Insertエラーが発生すると、ストレージ・プロシージャの操作もロールバックされます.そしてエラーを投げ出す.
22明示的な実装インタフェース
明示的に実装インタフェースは、string実装のIConvertibleのように直接呼び出すことはできません.呼び出す場合は、必要です:(「hello」as IConvertible).ToSingle(null) ;
23参照オブジェクトが渡されると、関数はその内容のみを変更でき、アドレスは変更できません。 static void Main(string[] args)
{
var dict = new Dictionary<string, string>();
update(dict);
dict.All(o =>
{
Console.WriteLine(o.Key + ":" + o.Value);
return true;
});
}
private static void update(Dictionary<string, string> dict)
{
dict = new Dictionary<string, string>();
dict["id"] = "1";
}
上記dictのアドレスを再指定したため、Mainから何も出力されません.dictを初期化して削除すれば目的を達成できます.
24暗黙ベースクラス
Arrayは配列の暗黙的なベースクラスです
Value Typeは値タイプの暗黙ベースクラスです
Enumはenum列挙の暗黙的ベースクラスである
MulticastDelegateはdelegateのベースクラスです.
25 MvcのサーバTransfer機能
サーバを使用できます.TransferRequestメソッドが実装されます.
26反射取得属性の場合、重複する属性値が得られる
タイプが属性を定義する場合、ベースクラスと同じ属性定義を使用し、newを使用して上書きされます.(ベースクラスの属性は虚ではない)、typeを使用している.GetProperties(BindingFlags.Public|BindingFlags.Instance)の場合、2つの属性値が得られます.サブクラス属性は前、ベースクラスは後です.
これを避けるには、System.ComponentModel.TypeDescriptor.GetPropertiesメソッド.ベースクラス属性がサブクラス属性と同じである場合、サブクラス属性が返されます.
27 Dos継続文字
http://www.newsmth.net/nForum/#!article/DOS/16444
Dos継続文字は:^
Jsの継続文字は
28. バイナリのビット設定
バイナリはあるビットの設定を増加します:a|b;
バイナリ減少あるビット設定:a&(~b);
29. FileSystemWatcher
30. クラスはクラス呼び出しにのみ使用されます。
public class呼び出しクラス
{
private class呼び出しクラス{
internal voidメソッド(){}
}
//勝手に呼び出しましょう.
}
31.インバータコヒーレンス
http://www.cnblogs.com/LoveJenny/archive/2012/03/13/2392747.html
結論:
は、Tが戻り値としてしかできないことを示す.
は、Tが入力値としてのみ使用可能であることを示す.
32. Web.コンフィグファイルのサイズに関する単位
一般的にKB、例えばmaxRequestLength
プログラム内のファイルサイズは、一般的にByte、例えばファイルのストリーム長です.
33.マルチスレッド
スレッドプールのスレッド数に影響を与える鍵は、SetMaxThreadsではなく、ThreadPoolのSetMinThreadsプロパティです.SetMaxThreadsは必要に応じて徐々に成長します.
QueueUserWorkItemとAction,FuncのBeginInvokeは同じである:スレッドプールSetMinThreadsの影響を受け,呼び出し後すぐにスレッドプールキューに入って実行を待ち,すぐに戻る.キューのサイズを制御できません.
下位レベルでは、機能を上位レベルに開放する実装スキームです.1つは、コンフィギュレーションによって、あるインタフェースを実装する実装をコンフィギュレーションし、下位レベルでオブジェクトインスタンス(重点キャッシュオブジェクト)を反射し、あるメソッドを呼び出すことです.高レベルのカスタムコードが必要な場合に便利です.
上位レベルの機能、または関数だけが必要な場合は、1つのイベントが委任されたことを暴露し、上位レベルにイベントを実現させることができます.
4.属性名、メソッド名、クラス名は同じクラスにあり、同じ名前は使用できません。
子クラスの属性名が親クラスのメソッド名と同じ名前である場合、警告が表示されます.しかし、使用の妨げにはならない.
5.業務ロジックでは、まず不正な条件の判断を行い、判断と業務ロジックを分ける.
6.Mvcは一種の思想であり、多くの場所に応用できる。
例えば、業務ロジックにおいて、業務処理層の間でこのModelを用いる、業務層でデータを処理し、ビュー層でメッセージを処理するModelを定義する.
7.約束は配置より優れている.
8.漏斗モデルに基づくIO.
すなわち、厳密な出力、ゆとりのある入力である.
例:public string proc ( string msg)
{
return msg.Trim() ; //
}
public check( string msg)
{
if ( msg.Trim() == "Edit") return true ; // 。
else return false ;
}
9.技術的に業務ミスを回避する。
例えば同時性ビジネスシーン:ユーザーは毎年固定ファイル名のファイルをアップロードする.開発者は当然固定ファイル名で固定フォルダの下に保存する.最低でもロックして
10.反射による汎用クラスの作成 var type = typeof(SystemException);
var obj = Activator.CreateInstance(
typeof(List<>).MakeGenericType(new Type[] { type }),
BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance,
null, null, null);
11. ロックはマルチCPU、マルチコアCPUに対して反発する.
12.辞書の初期化 Dictionary<int, StudentName> students = new Dictionary<int, StudentName>()
{
{ 111, new StudentName {FirstName="Sachin", LastName="Karnik", ID=211}},
{ 112, new StudentName {FirstName="Dina", LastName="Salimzianova", ID=317}},
{ 113, new StudentName {FirstName="Andy", LastName="Ruth", ID=198}}
};
13.四捨五入の問題: (int)( value + 0.5) .
14.前にデバッグで出会ったこの問題は、再び発生し、意外にも忘れて、しっかり覚えています。 , , :
public static implicit operator StringLinker(string StringOne){ return new StringLinker(StringOne) ;}
しかし、Stringの値が中間プロセスでobjectとして箱詰めされる場合、object obj=value; var result = (StringLinker)obj ; StringLinkerが定義した変換方法がobjectからStringLinkerに移行していないため、この行のコードはタイプ変換をトリガーしません.必要(StringLiner)(string)obj;汎用型を用いると、汎用型変換は無効である. var result = (StringLinker)(D)obj ; ゞ悲催.!ゞ
同様の問題は、拡張メソッドにも現れ、拡張メソッド名とクラスに現れるメソッドが重複すると、拡張メソッド名が無効になります.次のようになります.
public static string ToJson(this object obj){ return obj.ToJsonString();}
public class MyOqlSet
{
public string ToJson(){ return this.ToJsonString(); }
}
var set = new MyOqlSet() ;
set.ToJson() ;
この時、MyOqlSet.ToJson()メソッドが機能します.
もしそうなら:
public string Serialize(object obj )
{
obj.ToJson() ;}
このとき、拡張方法が役立ちます.
15.Mvc 2デザインがあまりよくないところ
URLルーティングがそうである場合:{Controller}/{Action}/{uid}である.aspx,Actionメソッドはpublic ActionResult Add(string uid)でなければなりません
メソッドパラメータの名前はルーティング中のuidである.表意性がない異なるアクションuidの意味は異なる.ここは気分が悪いところです.
考えてみれば理由がある.URLパラメータとメソッドパラメータとが一致する.次のようになります.
Admin/Dept/List.aspx?Type=Allは、public ActionResult List(string uid,string Type)と一致します.
しかし、public ActionResult Add(string uid)が同時に存在する場合は、エラーが報告される.2つ目の不快な場所です
16. C#実現できない方法
1.2つのIEnumerableを加算し、減算はa+b,a-b形式を採用する.
これは、リスト、リロード+、-演算子から継承されるクラスを実現することができます.
17.保護されたメモリの読み取りまたは書き込みを試みます。これは通常、他のメモリが破損していることを示します。
プロジェクトで実際にこの問題に遭遇したのは,EmitによってNullオブジェクトに付与操作を行ったためである.
18.VS 2010ショートカット記録
次のエラー:Ctrl+Shift+F 12、再構築時に大量のエラーが発生する可能性があります.これにより、迅速に位置決めできます.
アノテーション、アノテーション解除:Ctrl+C、Ctrl+K
項目で選択した単語を参照する方法:Shift+Ctrl+F 12.偶然出会った.
VSでエラー自動ブレークポイントを設定:Ctrl+Alt+E.
19汎用パラメータを設定するテクニック
次の方法を定義します.
public MyOqlSet LoadDictList( List> Source ){ return null ;}
このように定義する場合、入力パラメータも厳格なListでなければならない.以下はコンパイルに失敗する.
new MyOqlSet().LoadDictList( new List>() ) ;
次のように定義された汎用コンストレイントに変更します.
public MyOqlSet LoadDictList( List Source) where T: IDictionary { return null ;}
できます.
20 Transaction.Current
現在のTransactionScopeのみが取得でき、DbTransactionについてはどうしようもなく、現在の接続でしか判断できません:conn.Transaction
21分散トランザクション
http://msdn.microsoft.com/zh-cn/library/system.transactions.transactionscope(VS.80).aspx
上の例では、間違いを食べてしまったという大きな間違いを犯しています.
異常が発生した場合、scopeはすべきではありません.Completeです.
正しい方法は次のとおりです.
using ( var tran = new TransactionScope())
{
try
{
proc1();
dbr.Insert.Execute();
tran.Complete();
}
catch
{
Log();
}
}
また、proc 1でトランザクションが使用されている場合、ストレージ中にトランザクションがコミットされてもdbr.Insertエラーが発生すると、ストレージ・プロシージャの操作もロールバックされます.そしてエラーを投げ出す.
22明示的な実装インタフェース
明示的に実装インタフェースは、string実装のIConvertibleのように直接呼び出すことはできません.呼び出す場合は、必要です:(「hello」as IConvertible).ToSingle(null) ;
23参照オブジェクトが渡されると、関数はその内容のみを変更でき、アドレスは変更できません。 static void Main(string[] args)
{
var dict = new Dictionary<string, string>();
update(dict);
dict.All(o =>
{
Console.WriteLine(o.Key + ":" + o.Value);
return true;
});
}
private static void update(Dictionary<string, string> dict)
{
dict = new Dictionary<string, string>();
dict["id"] = "1";
}
上記dictのアドレスを再指定したため、Mainから何も出力されません.dictを初期化して削除すれば目的を達成できます.
24暗黙ベースクラス
Arrayは配列の暗黙的なベースクラスです
Value Typeは値タイプの暗黙ベースクラスです
Enumはenum列挙の暗黙的ベースクラスである
MulticastDelegateはdelegateのベースクラスです.
25 MvcのサーバTransfer機能
サーバを使用できます.TransferRequestメソッドが実装されます.
26反射取得属性の場合、重複する属性値が得られる
タイプが属性を定義する場合、ベースクラスと同じ属性定義を使用し、newを使用して上書きされます.(ベースクラスの属性は虚ではない)、typeを使用している.GetProperties(BindingFlags.Public|BindingFlags.Instance)の場合、2つの属性値が得られます.サブクラス属性は前、ベースクラスは後です.
これを避けるには、System.ComponentModel.TypeDescriptor.GetPropertiesメソッド.ベースクラス属性がサブクラス属性と同じである場合、サブクラス属性が返されます.
27 Dos継続文字
http://www.newsmth.net/nForum/#!article/DOS/16444
Dos継続文字は:^
Jsの継続文字は
28. バイナリのビット設定
バイナリはあるビットの設定を増加します:a|b;
バイナリ減少あるビット設定:a&(~b);
29. FileSystemWatcher
30. クラスはクラス呼び出しにのみ使用されます。
public class呼び出しクラス
{
private class呼び出しクラス{
internal voidメソッド(){}
}
//勝手に呼び出しましょう.
}
31.インバータコヒーレンス
http://www.cnblogs.com/LoveJenny/archive/2012/03/13/2392747.html
結論:
は、Tが戻り値としてしかできないことを示す.
は、Tが入力値としてのみ使用可能であることを示す.
32. Web.コンフィグファイルのサイズに関する単位
一般的にKB、例えばmaxRequestLength
プログラム内のファイルサイズは、一般的にByte、例えばファイルのストリーム長です.
33.マルチスレッド
スレッドプールのスレッド数に影響を与える鍵は、SetMaxThreadsではなく、ThreadPoolのSetMinThreadsプロパティです.SetMaxThreadsは必要に応じて徐々に成長します.
QueueUserWorkItemとAction,FuncのBeginInvokeは同じである:スレッドプールSetMinThreadsの影響を受け,呼び出し後すぐにスレッドプールキューに入って実行を待ち,すぐに戻る.キューのサイズを制御できません.
5.業務ロジックでは、まず不正な条件の判断を行い、判断と業務ロジックを分ける.
6.Mvcは一種の思想であり、多くの場所に応用できる。
例えば、業務ロジックにおいて、業務処理層の間でこのModelを用いる、業務層でデータを処理し、ビュー層でメッセージを処理するModelを定義する.
7.約束は配置より優れている.
8.漏斗モデルに基づくIO.
すなわち、厳密な出力、ゆとりのある入力である.
例:public string proc ( string msg)
{
return msg.Trim() ; //
}
public check( string msg)
{
if ( msg.Trim() == "Edit") return true ; // 。
else return false ;
}
9.技術的に業務ミスを回避する。
例えば同時性ビジネスシーン:ユーザーは毎年固定ファイル名のファイルをアップロードする.開発者は当然固定ファイル名で固定フォルダの下に保存する.最低でもロックして
10.反射による汎用クラスの作成 var type = typeof(SystemException);
var obj = Activator.CreateInstance(
typeof(List<>).MakeGenericType(new Type[] { type }),
BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance,
null, null, null);
11. ロックはマルチCPU、マルチコアCPUに対して反発する.
12.辞書の初期化 Dictionary<int, StudentName> students = new Dictionary<int, StudentName>()
{
{ 111, new StudentName {FirstName="Sachin", LastName="Karnik", ID=211}},
{ 112, new StudentName {FirstName="Dina", LastName="Salimzianova", ID=317}},
{ 113, new StudentName {FirstName="Andy", LastName="Ruth", ID=198}}
};
13.四捨五入の問題: (int)( value + 0.5) .
14.前にデバッグで出会ったこの問題は、再び発生し、意外にも忘れて、しっかり覚えています。 , , :
public static implicit operator StringLinker(string StringOne){ return new StringLinker(StringOne) ;}
しかし、Stringの値が中間プロセスでobjectとして箱詰めされる場合、object obj=value; var result = (StringLinker)obj ; StringLinkerが定義した変換方法がobjectからStringLinkerに移行していないため、この行のコードはタイプ変換をトリガーしません.必要(StringLiner)(string)obj;汎用型を用いると、汎用型変換は無効である. var result = (StringLinker)(D)obj ; ゞ悲催.!ゞ
同様の問題は、拡張メソッドにも現れ、拡張メソッド名とクラスに現れるメソッドが重複すると、拡張メソッド名が無効になります.次のようになります.
public static string ToJson(this object obj){ return obj.ToJsonString();}
public class MyOqlSet
{
public string ToJson(){ return this.ToJsonString(); }
}
var set = new MyOqlSet() ;
set.ToJson() ;
この時、MyOqlSet.ToJson()メソッドが機能します.
もしそうなら:
public string Serialize(object obj )
{
obj.ToJson() ;}
このとき、拡張方法が役立ちます.
15.Mvc 2デザインがあまりよくないところ
URLルーティングがそうである場合:{Controller}/{Action}/{uid}である.aspx,Actionメソッドはpublic ActionResult Add(string uid)でなければなりません
メソッドパラメータの名前はルーティング中のuidである.表意性がない異なるアクションuidの意味は異なる.ここは気分が悪いところです.
考えてみれば理由がある.URLパラメータとメソッドパラメータとが一致する.次のようになります.
Admin/Dept/List.aspx?Type=Allは、public ActionResult List(string uid,string Type)と一致します.
しかし、public ActionResult Add(string uid)が同時に存在する場合は、エラーが報告される.2つ目の不快な場所です
16. C#実現できない方法
1.2つのIEnumerableを加算し、減算はa+b,a-b形式を採用する.
これは、リスト、リロード+、-演算子から継承されるクラスを実現することができます.
17.保護されたメモリの読み取りまたは書き込みを試みます。これは通常、他のメモリが破損していることを示します。
プロジェクトで実際にこの問題に遭遇したのは,EmitによってNullオブジェクトに付与操作を行ったためである.
18.VS 2010ショートカット記録
次のエラー:Ctrl+Shift+F 12、再構築時に大量のエラーが発生する可能性があります.これにより、迅速に位置決めできます.
アノテーション、アノテーション解除:Ctrl+C、Ctrl+K
項目で選択した単語を参照する方法:Shift+Ctrl+F 12.偶然出会った.
VSでエラー自動ブレークポイントを設定:Ctrl+Alt+E.
19汎用パラメータを設定するテクニック
次の方法を定義します.
public MyOqlSet LoadDictList( List> Source ){ return null ;}
このように定義する場合、入力パラメータも厳格なListでなければならない.以下はコンパイルに失敗する.
new MyOqlSet().LoadDictList( new List>() ) ;
次のように定義された汎用コンストレイントに変更します.
public MyOqlSet LoadDictList( List Source) where T: IDictionary { return null ;}
できます.
20 Transaction.Current
現在のTransactionScopeのみが取得でき、DbTransactionについてはどうしようもなく、現在の接続でしか判断できません:conn.Transaction
21分散トランザクション
http://msdn.microsoft.com/zh-cn/library/system.transactions.transactionscope(VS.80).aspx
上の例では、間違いを食べてしまったという大きな間違いを犯しています.
異常が発生した場合、scopeはすべきではありません.Completeです.
正しい方法は次のとおりです.
using ( var tran = new TransactionScope())
{
try
{
proc1();
dbr.Insert.Execute();
tran.Complete();
}
catch
{
Log();
}
}
また、proc 1でトランザクションが使用されている場合、ストレージ中にトランザクションがコミットされてもdbr.Insertエラーが発生すると、ストレージ・プロシージャの操作もロールバックされます.そしてエラーを投げ出す.
22明示的な実装インタフェース
明示的に実装インタフェースは、string実装のIConvertibleのように直接呼び出すことはできません.呼び出す場合は、必要です:(「hello」as IConvertible).ToSingle(null) ;
23参照オブジェクトが渡されると、関数はその内容のみを変更でき、アドレスは変更できません。 static void Main(string[] args)
{
var dict = new Dictionary<string, string>();
update(dict);
dict.All(o =>
{
Console.WriteLine(o.Key + ":" + o.Value);
return true;
});
}
private static void update(Dictionary<string, string> dict)
{
dict = new Dictionary<string, string>();
dict["id"] = "1";
}
上記dictのアドレスを再指定したため、Mainから何も出力されません.dictを初期化して削除すれば目的を達成できます.
24暗黙ベースクラス
Arrayは配列の暗黙的なベースクラスです
Value Typeは値タイプの暗黙ベースクラスです
Enumはenum列挙の暗黙的ベースクラスである
MulticastDelegateはdelegateのベースクラスです.
25 MvcのサーバTransfer機能
サーバを使用できます.TransferRequestメソッドが実装されます.
26反射取得属性の場合、重複する属性値が得られる
タイプが属性を定義する場合、ベースクラスと同じ属性定義を使用し、newを使用して上書きされます.(ベースクラスの属性は虚ではない)、typeを使用している.GetProperties(BindingFlags.Public|BindingFlags.Instance)の場合、2つの属性値が得られます.サブクラス属性は前、ベースクラスは後です.
これを避けるには、System.ComponentModel.TypeDescriptor.GetPropertiesメソッド.ベースクラス属性がサブクラス属性と同じである場合、サブクラス属性が返されます.
27 Dos継続文字
http://www.newsmth.net/nForum/#!article/DOS/16444
Dos継続文字は:^
Jsの継続文字は
28. バイナリのビット設定
バイナリはあるビットの設定を増加します:a|b;
バイナリ減少あるビット設定:a&(~b);
29. FileSystemWatcher
30. クラスはクラス呼び出しにのみ使用されます。
public class呼び出しクラス
{
private class呼び出しクラス{
internal voidメソッド(){}
}
//勝手に呼び出しましょう.
}
31.インバータコヒーレンス
http://www.cnblogs.com/LoveJenny/archive/2012/03/13/2392747.html
結論:
は、Tが戻り値としてしかできないことを示す.
は、Tが入力値としてのみ使用可能であることを示す.
32. Web.コンフィグファイルのサイズに関する単位
一般的にKB、例えばmaxRequestLength
プログラム内のファイルサイズは、一般的にByte、例えばファイルのストリーム長です.
33.マルチスレッド
スレッドプールのスレッド数に影響を与える鍵は、SetMaxThreadsではなく、ThreadPoolのSetMinThreadsプロパティです.SetMaxThreadsは必要に応じて徐々に成長します.
QueueUserWorkItemとAction,FuncのBeginInvokeは同じである:スレッドプールSetMinThreadsの影響を受け,呼び出し後すぐにスレッドプールキューに入って実行を待ち,すぐに戻る.キューのサイズを制御できません.
例えば、業務ロジックにおいて、業務処理層の間でこのModelを用いる、業務層でデータを処理し、ビュー層でメッセージを処理するModelを定義する.
7.約束は配置より優れている.
8.漏斗モデルに基づくIO.
すなわち、厳密な出力、ゆとりのある入力である.
例:public string proc ( string msg)
{
return msg.Trim() ; //
}
public check( string msg)
{
if ( msg.Trim() == "Edit") return true ; // 。
else return false ;
}
9.技術的に業務ミスを回避する。
例えば同時性ビジネスシーン:ユーザーは毎年固定ファイル名のファイルをアップロードする.開発者は当然固定ファイル名で固定フォルダの下に保存する.最低でもロックして
10.反射による汎用クラスの作成 var type = typeof(SystemException);
var obj = Activator.CreateInstance(
typeof(List<>).MakeGenericType(new Type[] { type }),
BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance,
null, null, null);
11. ロックはマルチCPU、マルチコアCPUに対して反発する.
12.辞書の初期化 Dictionary<int, StudentName> students = new Dictionary<int, StudentName>()
{
{ 111, new StudentName {FirstName="Sachin", LastName="Karnik", ID=211}},
{ 112, new StudentName {FirstName="Dina", LastName="Salimzianova", ID=317}},
{ 113, new StudentName {FirstName="Andy", LastName="Ruth", ID=198}}
};
13.四捨五入の問題: (int)( value + 0.5) .
14.前にデバッグで出会ったこの問題は、再び発生し、意外にも忘れて、しっかり覚えています。 , , :
public static implicit operator StringLinker(string StringOne){ return new StringLinker(StringOne) ;}
しかし、Stringの値が中間プロセスでobjectとして箱詰めされる場合、object obj=value; var result = (StringLinker)obj ; StringLinkerが定義した変換方法がobjectからStringLinkerに移行していないため、この行のコードはタイプ変換をトリガーしません.必要(StringLiner)(string)obj;汎用型を用いると、汎用型変換は無効である. var result = (StringLinker)(D)obj ; ゞ悲催.!ゞ
同様の問題は、拡張メソッドにも現れ、拡張メソッド名とクラスに現れるメソッドが重複すると、拡張メソッド名が無効になります.次のようになります.
public static string ToJson(this object obj){ return obj.ToJsonString();}
public class MyOqlSet
{
public string ToJson(){ return this.ToJsonString(); }
}
var set = new MyOqlSet() ;
set.ToJson() ;
この時、MyOqlSet.ToJson()メソッドが機能します.
もしそうなら:
public string Serialize(object obj )
{
obj.ToJson() ;}
このとき、拡張方法が役立ちます.
15.Mvc 2デザインがあまりよくないところ
URLルーティングがそうである場合:{Controller}/{Action}/{uid}である.aspx,Actionメソッドはpublic ActionResult Add(string uid)でなければなりません
メソッドパラメータの名前はルーティング中のuidである.表意性がない異なるアクションuidの意味は異なる.ここは気分が悪いところです.
考えてみれば理由がある.URLパラメータとメソッドパラメータとが一致する.次のようになります.
Admin/Dept/List.aspx?Type=Allは、public ActionResult List(string uid,string Type)と一致します.
しかし、public ActionResult Add(string uid)が同時に存在する場合は、エラーが報告される.2つ目の不快な場所です
16. C#実現できない方法
1.2つのIEnumerableを加算し、減算はa+b,a-b形式を採用する.
これは、リスト、リロード+、-演算子から継承されるクラスを実現することができます.
17.保護されたメモリの読み取りまたは書き込みを試みます。これは通常、他のメモリが破損していることを示します。
プロジェクトで実際にこの問題に遭遇したのは,EmitによってNullオブジェクトに付与操作を行ったためである.
18.VS 2010ショートカット記録
次のエラー:Ctrl+Shift+F 12、再構築時に大量のエラーが発生する可能性があります.これにより、迅速に位置決めできます.
アノテーション、アノテーション解除:Ctrl+C、Ctrl+K
項目で選択した単語を参照する方法:Shift+Ctrl+F 12.偶然出会った.
VSでエラー自動ブレークポイントを設定:Ctrl+Alt+E.
19汎用パラメータを設定するテクニック
次の方法を定義します.
public MyOqlSet LoadDictList( List> Source ){ return null ;}
このように定義する場合、入力パラメータも厳格なListでなければならない.以下はコンパイルに失敗する.
new MyOqlSet().LoadDictList( new List>() ) ;
次のように定義された汎用コンストレイントに変更します.
public MyOqlSet LoadDictList( List Source) where T: IDictionary { return null ;}
できます.
20 Transaction.Current
現在のTransactionScopeのみが取得でき、DbTransactionについてはどうしようもなく、現在の接続でしか判断できません:conn.Transaction
21分散トランザクション
http://msdn.microsoft.com/zh-cn/library/system.transactions.transactionscope(VS.80).aspx
上の例では、間違いを食べてしまったという大きな間違いを犯しています.
異常が発生した場合、scopeはすべきではありません.Completeです.
正しい方法は次のとおりです.
using ( var tran = new TransactionScope())
{
try
{
proc1();
dbr.Insert.Execute();
tran.Complete();
}
catch
{
Log();
}
}
また、proc 1でトランザクションが使用されている場合、ストレージ中にトランザクションがコミットされてもdbr.Insertエラーが発生すると、ストレージ・プロシージャの操作もロールバックされます.そしてエラーを投げ出す.
22明示的な実装インタフェース
明示的に実装インタフェースは、string実装のIConvertibleのように直接呼び出すことはできません.呼び出す場合は、必要です:(「hello」as IConvertible).ToSingle(null) ;
23参照オブジェクトが渡されると、関数はその内容のみを変更でき、アドレスは変更できません。 static void Main(string[] args)
{
var dict = new Dictionary<string, string>();
update(dict);
dict.All(o =>
{
Console.WriteLine(o.Key + ":" + o.Value);
return true;
});
}
private static void update(Dictionary<string, string> dict)
{
dict = new Dictionary<string, string>();
dict["id"] = "1";
}
上記dictのアドレスを再指定したため、Mainから何も出力されません.dictを初期化して削除すれば目的を達成できます.
24暗黙ベースクラス
Arrayは配列の暗黙的なベースクラスです
Value Typeは値タイプの暗黙ベースクラスです
Enumはenum列挙の暗黙的ベースクラスである
MulticastDelegateはdelegateのベースクラスです.
25 MvcのサーバTransfer機能
サーバを使用できます.TransferRequestメソッドが実装されます.
26反射取得属性の場合、重複する属性値が得られる
タイプが属性を定義する場合、ベースクラスと同じ属性定義を使用し、newを使用して上書きされます.(ベースクラスの属性は虚ではない)、typeを使用している.GetProperties(BindingFlags.Public|BindingFlags.Instance)の場合、2つの属性値が得られます.サブクラス属性は前、ベースクラスは後です.
これを避けるには、System.ComponentModel.TypeDescriptor.GetPropertiesメソッド.ベースクラス属性がサブクラス属性と同じである場合、サブクラス属性が返されます.
27 Dos継続文字
http://www.newsmth.net/nForum/#!article/DOS/16444
Dos継続文字は:^
Jsの継続文字は
28. バイナリのビット設定
バイナリはあるビットの設定を増加します:a|b;
バイナリ減少あるビット設定:a&(~b);
29. FileSystemWatcher
30. クラスはクラス呼び出しにのみ使用されます。
public class呼び出しクラス
{
private class呼び出しクラス{
internal voidメソッド(){}
}
//勝手に呼び出しましょう.
}
31.インバータコヒーレンス
http://www.cnblogs.com/LoveJenny/archive/2012/03/13/2392747.html
結論:
は、Tが戻り値としてしかできないことを示す.
は、Tが入力値としてのみ使用可能であることを示す.
32. Web.コンフィグファイルのサイズに関する単位
一般的にKB、例えばmaxRequestLength
プログラム内のファイルサイズは、一般的にByte、例えばファイルのストリーム長です.
33.マルチスレッド
スレッドプールのスレッド数に影響を与える鍵は、SetMaxThreadsではなく、ThreadPoolのSetMinThreadsプロパティです.SetMaxThreadsは必要に応じて徐々に成長します.
QueueUserWorkItemとAction,FuncのBeginInvokeは同じである:スレッドプールSetMinThreadsの影響を受け,呼び出し後すぐにスレッドプールキューに入って実行を待ち,すぐに戻る.キューのサイズを制御できません.
すなわち、厳密な出力、ゆとりのある入力である.
例:
public string proc ( string msg)
{
return msg.Trim() ; //
}
public check( string msg)
{
if ( msg.Trim() == "Edit") return true ; // 。
else return false ;
}
9.技術的に業務ミスを回避する。
例えば同時性ビジネスシーン:ユーザーは毎年固定ファイル名のファイルをアップロードする.開発者は当然固定ファイル名で固定フォルダの下に保存する.最低でもロックして
10.反射による汎用クラスの作成 var type = typeof(SystemException);
var obj = Activator.CreateInstance(
typeof(List<>).MakeGenericType(new Type[] { type }),
BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance,
null, null, null);
11. ロックはマルチCPU、マルチコアCPUに対して反発する.
12.辞書の初期化 Dictionary<int, StudentName> students = new Dictionary<int, StudentName>()
{
{ 111, new StudentName {FirstName="Sachin", LastName="Karnik", ID=211}},
{ 112, new StudentName {FirstName="Dina", LastName="Salimzianova", ID=317}},
{ 113, new StudentName {FirstName="Andy", LastName="Ruth", ID=198}}
};
13.四捨五入の問題: (int)( value + 0.5) .
14.前にデバッグで出会ったこの問題は、再び発生し、意外にも忘れて、しっかり覚えています。 , , :
public static implicit operator StringLinker(string StringOne){ return new StringLinker(StringOne) ;}
しかし、Stringの値が中間プロセスでobjectとして箱詰めされる場合、object obj=value; var result = (StringLinker)obj ; StringLinkerが定義した変換方法がobjectからStringLinkerに移行していないため、この行のコードはタイプ変換をトリガーしません.必要(StringLiner)(string)obj;汎用型を用いると、汎用型変換は無効である. var result = (StringLinker)(D)obj ; ゞ悲催.!ゞ
同様の問題は、拡張メソッドにも現れ、拡張メソッド名とクラスに現れるメソッドが重複すると、拡張メソッド名が無効になります.次のようになります.
public static string ToJson(this object obj){ return obj.ToJsonString();}
public class MyOqlSet
{
public string ToJson(){ return this.ToJsonString(); }
}
var set = new MyOqlSet() ;
set.ToJson() ;
この時、MyOqlSet.ToJson()メソッドが機能します.
もしそうなら:
public string Serialize(object obj )
{
obj.ToJson() ;}
このとき、拡張方法が役立ちます.
15.Mvc 2デザインがあまりよくないところ
URLルーティングがそうである場合:{Controller}/{Action}/{uid}である.aspx,Actionメソッドはpublic ActionResult Add(string uid)でなければなりません
メソッドパラメータの名前はルーティング中のuidである.表意性がない異なるアクションuidの意味は異なる.ここは気分が悪いところです.
考えてみれば理由がある.URLパラメータとメソッドパラメータとが一致する.次のようになります.
Admin/Dept/List.aspx?Type=Allは、public ActionResult List(string uid,string Type)と一致します.
しかし、public ActionResult Add(string uid)が同時に存在する場合は、エラーが報告される.2つ目の不快な場所です
16. C#実現できない方法
1.2つのIEnumerableを加算し、減算はa+b,a-b形式を採用する.
これは、リスト、リロード+、-演算子から継承されるクラスを実現することができます.
17.保護されたメモリの読み取りまたは書き込みを試みます。これは通常、他のメモリが破損していることを示します。
プロジェクトで実際にこの問題に遭遇したのは,EmitによってNullオブジェクトに付与操作を行ったためである.
18.VS 2010ショートカット記録
次のエラー:Ctrl+Shift+F 12、再構築時に大量のエラーが発生する可能性があります.これにより、迅速に位置決めできます.
アノテーション、アノテーション解除:Ctrl+C、Ctrl+K
項目で選択した単語を参照する方法:Shift+Ctrl+F 12.偶然出会った.
VSでエラー自動ブレークポイントを設定:Ctrl+Alt+E.
19汎用パラメータを設定するテクニック
次の方法を定義します.
public MyOqlSet LoadDictList( List> Source ){ return null ;}
このように定義する場合、入力パラメータも厳格なListでなければならない.以下はコンパイルに失敗する.
new MyOqlSet().LoadDictList( new List>() ) ;
次のように定義された汎用コンストレイントに変更します.
public MyOqlSet LoadDictList( List Source) where T: IDictionary { return null ;}
できます.
20 Transaction.Current
現在のTransactionScopeのみが取得でき、DbTransactionについてはどうしようもなく、現在の接続でしか判断できません:conn.Transaction
21分散トランザクション
http://msdn.microsoft.com/zh-cn/library/system.transactions.transactionscope(VS.80).aspx
上の例では、間違いを食べてしまったという大きな間違いを犯しています.
異常が発生した場合、scopeはすべきではありません.Completeです.
正しい方法は次のとおりです.
using ( var tran = new TransactionScope())
{
try
{
proc1();
dbr.Insert.Execute();
tran.Complete();
}
catch
{
Log();
}
}
また、proc 1でトランザクションが使用されている場合、ストレージ中にトランザクションがコミットされてもdbr.Insertエラーが発生すると、ストレージ・プロシージャの操作もロールバックされます.そしてエラーを投げ出す.
22明示的な実装インタフェース
明示的に実装インタフェースは、string実装のIConvertibleのように直接呼び出すことはできません.呼び出す場合は、必要です:(「hello」as IConvertible).ToSingle(null) ;
23参照オブジェクトが渡されると、関数はその内容のみを変更でき、アドレスは変更できません。 static void Main(string[] args)
{
var dict = new Dictionary<string, string>();
update(dict);
dict.All(o =>
{
Console.WriteLine(o.Key + ":" + o.Value);
return true;
});
}
private static void update(Dictionary<string, string> dict)
{
dict = new Dictionary<string, string>();
dict["id"] = "1";
}
上記dictのアドレスを再指定したため、Mainから何も出力されません.dictを初期化して削除すれば目的を達成できます.
24暗黙ベースクラス
Arrayは配列の暗黙的なベースクラスです
Value Typeは値タイプの暗黙ベースクラスです
Enumはenum列挙の暗黙的ベースクラスである
MulticastDelegateはdelegateのベースクラスです.
25 MvcのサーバTransfer機能
サーバを使用できます.TransferRequestメソッドが実装されます.
26反射取得属性の場合、重複する属性値が得られる
タイプが属性を定義する場合、ベースクラスと同じ属性定義を使用し、newを使用して上書きされます.(ベースクラスの属性は虚ではない)、typeを使用している.GetProperties(BindingFlags.Public|BindingFlags.Instance)の場合、2つの属性値が得られます.サブクラス属性は前、ベースクラスは後です.
これを避けるには、System.ComponentModel.TypeDescriptor.GetPropertiesメソッド.ベースクラス属性がサブクラス属性と同じである場合、サブクラス属性が返されます.
27 Dos継続文字
http://www.newsmth.net/nForum/#!article/DOS/16444
Dos継続文字は:^
Jsの継続文字は
28. バイナリのビット設定
バイナリはあるビットの設定を増加します:a|b;
バイナリ減少あるビット設定:a&(~b);
29. FileSystemWatcher
30. クラスはクラス呼び出しにのみ使用されます。
public class呼び出しクラス
{
private class呼び出しクラス{
internal voidメソッド(){}
}
//勝手に呼び出しましょう.
}
31.インバータコヒーレンス
http://www.cnblogs.com/LoveJenny/archive/2012/03/13/2392747.html
結論:
は、Tが戻り値としてしかできないことを示す.
は、Tが入力値としてのみ使用可能であることを示す.
32. Web.コンフィグファイルのサイズに関する単位
一般的にKB、例えばmaxRequestLength
プログラム内のファイルサイズは、一般的にByte、例えばファイルのストリーム長です.
33.マルチスレッド
スレッドプールのスレッド数に影響を与える鍵は、SetMaxThreadsではなく、ThreadPoolのSetMinThreadsプロパティです.SetMaxThreadsは必要に応じて徐々に成長します.
QueueUserWorkItemとAction,FuncのBeginInvokeは同じである:スレッドプールSetMinThreadsの影響を受け,呼び出し後すぐにスレッドプールキューに入って実行を待ち,すぐに戻る.キューのサイズを制御できません.
var type = typeof(SystemException);
var obj = Activator.CreateInstance(
typeof(List<>).MakeGenericType(new Type[] { type }),
BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance,
null, null, null);
11. ロックはマルチCPU、マルチコアCPUに対して反発する.
12.辞書の初期化 Dictionary<int, StudentName> students = new Dictionary<int, StudentName>()
{
{ 111, new StudentName {FirstName="Sachin", LastName="Karnik", ID=211}},
{ 112, new StudentName {FirstName="Dina", LastName="Salimzianova", ID=317}},
{ 113, new StudentName {FirstName="Andy", LastName="Ruth", ID=198}}
};
13.四捨五入の問題: (int)( value + 0.5) .
14.前にデバッグで出会ったこの問題は、再び発生し、意外にも忘れて、しっかり覚えています。 , , :
public static implicit operator StringLinker(string StringOne){ return new StringLinker(StringOne) ;}
しかし、Stringの値が中間プロセスでobjectとして箱詰めされる場合、object obj=value; var result = (StringLinker)obj ; StringLinkerが定義した変換方法がobjectからStringLinkerに移行していないため、この行のコードはタイプ変換をトリガーしません.必要(StringLiner)(string)obj;汎用型を用いると、汎用型変換は無効である. var result = (StringLinker)(D)obj ; ゞ悲催.!ゞ
同様の問題は、拡張メソッドにも現れ、拡張メソッド名とクラスに現れるメソッドが重複すると、拡張メソッド名が無効になります.次のようになります.
public static string ToJson(this object obj){ return obj.ToJsonString();}
public class MyOqlSet
{
public string ToJson(){ return this.ToJsonString(); }
}
var set = new MyOqlSet() ;
set.ToJson() ;
この時、MyOqlSet.ToJson()メソッドが機能します.
もしそうなら:
public string Serialize(object obj )
{
obj.ToJson() ;}
このとき、拡張方法が役立ちます.
15.Mvc 2デザインがあまりよくないところ
URLルーティングがそうである場合:{Controller}/{Action}/{uid}である.aspx,Actionメソッドはpublic ActionResult Add(string uid)でなければなりません
メソッドパラメータの名前はルーティング中のuidである.表意性がない異なるアクションuidの意味は異なる.ここは気分が悪いところです.
考えてみれば理由がある.URLパラメータとメソッドパラメータとが一致する.次のようになります.
Admin/Dept/List.aspx?Type=Allは、public ActionResult List(string uid,string Type)と一致します.
しかし、public ActionResult Add(string uid)が同時に存在する場合は、エラーが報告される.2つ目の不快な場所です
16. C#実現できない方法
1.2つのIEnumerableを加算し、減算はa+b,a-b形式を採用する.
これは、リスト、リロード+、-演算子から継承されるクラスを実現することができます.
17.保護されたメモリの読み取りまたは書き込みを試みます。これは通常、他のメモリが破損していることを示します。
プロジェクトで実際にこの問題に遭遇したのは,EmitによってNullオブジェクトに付与操作を行ったためである.
18.VS 2010ショートカット記録
次のエラー:Ctrl+Shift+F 12、再構築時に大量のエラーが発生する可能性があります.これにより、迅速に位置決めできます.
アノテーション、アノテーション解除:Ctrl+C、Ctrl+K
項目で選択した単語を参照する方法:Shift+Ctrl+F 12.偶然出会った.
VSでエラー自動ブレークポイントを設定:Ctrl+Alt+E.
19汎用パラメータを設定するテクニック
次の方法を定義します.
public MyOqlSet LoadDictList( List> Source ){ return null ;}
このように定義する場合、入力パラメータも厳格なListでなければならない.以下はコンパイルに失敗する.
new MyOqlSet().LoadDictList( new List>() ) ;
次のように定義された汎用コンストレイントに変更します.
public MyOqlSet LoadDictList( List Source) where T: IDictionary { return null ;}
できます.
20 Transaction.Current
現在のTransactionScopeのみが取得でき、DbTransactionについてはどうしようもなく、現在の接続でしか判断できません:conn.Transaction
21分散トランザクション
http://msdn.microsoft.com/zh-cn/library/system.transactions.transactionscope(VS.80).aspx
上の例では、間違いを食べてしまったという大きな間違いを犯しています.
異常が発生した場合、scopeはすべきではありません.Completeです.
正しい方法は次のとおりです.
using ( var tran = new TransactionScope())
{
try
{
proc1();
dbr.Insert.Execute();
tran.Complete();
}
catch
{
Log();
}
}
また、proc 1でトランザクションが使用されている場合、ストレージ中にトランザクションがコミットされてもdbr.Insertエラーが発生すると、ストレージ・プロシージャの操作もロールバックされます.そしてエラーを投げ出す.
22明示的な実装インタフェース
明示的に実装インタフェースは、string実装のIConvertibleのように直接呼び出すことはできません.呼び出す場合は、必要です:(「hello」as IConvertible).ToSingle(null) ;
23参照オブジェクトが渡されると、関数はその内容のみを変更でき、アドレスは変更できません。 static void Main(string[] args)
{
var dict = new Dictionary<string, string>();
update(dict);
dict.All(o =>
{
Console.WriteLine(o.Key + ":" + o.Value);
return true;
});
}
private static void update(Dictionary<string, string> dict)
{
dict = new Dictionary<string, string>();
dict["id"] = "1";
}
上記dictのアドレスを再指定したため、Mainから何も出力されません.dictを初期化して削除すれば目的を達成できます.
24暗黙ベースクラス
Arrayは配列の暗黙的なベースクラスです
Value Typeは値タイプの暗黙ベースクラスです
Enumはenum列挙の暗黙的ベースクラスである
MulticastDelegateはdelegateのベースクラスです.
25 MvcのサーバTransfer機能
サーバを使用できます.TransferRequestメソッドが実装されます.
26反射取得属性の場合、重複する属性値が得られる
タイプが属性を定義する場合、ベースクラスと同じ属性定義を使用し、newを使用して上書きされます.(ベースクラスの属性は虚ではない)、typeを使用している.GetProperties(BindingFlags.Public|BindingFlags.Instance)の場合、2つの属性値が得られます.サブクラス属性は前、ベースクラスは後です.
これを避けるには、System.ComponentModel.TypeDescriptor.GetPropertiesメソッド.ベースクラス属性がサブクラス属性と同じである場合、サブクラス属性が返されます.
27 Dos継続文字
http://www.newsmth.net/nForum/#!article/DOS/16444
Dos継続文字は:^
Jsの継続文字は
28. バイナリのビット設定
バイナリはあるビットの設定を増加します:a|b;
バイナリ減少あるビット設定:a&(~b);
29. FileSystemWatcher
30. クラスはクラス呼び出しにのみ使用されます。
public class呼び出しクラス
{
private class呼び出しクラス{
internal voidメソッド(){}
}
//勝手に呼び出しましょう.
}
31.インバータコヒーレンス
http://www.cnblogs.com/LoveJenny/archive/2012/03/13/2392747.html
結論:
は、Tが戻り値としてしかできないことを示す.
は、Tが入力値としてのみ使用可能であることを示す.
32. Web.コンフィグファイルのサイズに関する単位
一般的にKB、例えばmaxRequestLength
プログラム内のファイルサイズは、一般的にByte、例えばファイルのストリーム長です.
33.マルチスレッド
スレッドプールのスレッド数に影響を与える鍵は、SetMaxThreadsではなく、ThreadPoolのSetMinThreadsプロパティです.SetMaxThreadsは必要に応じて徐々に成長します.
QueueUserWorkItemとAction,FuncのBeginInvokeは同じである:スレッドプールSetMinThreadsの影響を受け,呼び出し後すぐにスレッドプールキューに入って実行を待ち,すぐに戻る.キューのサイズを制御できません.
Dictionary<int, StudentName> students = new Dictionary<int, StudentName>()
{
{ 111, new StudentName {FirstName="Sachin", LastName="Karnik", ID=211}},
{ 112, new StudentName {FirstName="Dina", LastName="Salimzianova", ID=317}},
{ 113, new StudentName {FirstName="Andy", LastName="Ruth", ID=198}}
};
13.四捨五入の問題: (int)( value + 0.5) .
14.前にデバッグで出会ったこの問題は、再び発生し、意外にも忘れて、しっかり覚えています。 , , :
public static implicit operator StringLinker(string StringOne){ return new StringLinker(StringOne) ;}
しかし、Stringの値が中間プロセスでobjectとして箱詰めされる場合、object obj=value; var result = (StringLinker)obj ; StringLinkerが定義した変換方法がobjectからStringLinkerに移行していないため、この行のコードはタイプ変換をトリガーしません.必要(StringLiner)(string)obj;汎用型を用いると、汎用型変換は無効である. var result = (StringLinker)(D)obj ; ゞ悲催.!ゞ
同様の問題は、拡張メソッドにも現れ、拡張メソッド名とクラスに現れるメソッドが重複すると、拡張メソッド名が無効になります.次のようになります.
public static string ToJson(this object obj){ return obj.ToJsonString();}
public class MyOqlSet
{
public string ToJson(){ return this.ToJsonString(); }
}
var set = new MyOqlSet() ;
set.ToJson() ;
この時、MyOqlSet.ToJson()メソッドが機能します.
もしそうなら:
public string Serialize(object obj )
{
obj.ToJson() ;}
このとき、拡張方法が役立ちます.
15.Mvc 2デザインがあまりよくないところ
URLルーティングがそうである場合:{Controller}/{Action}/{uid}である.aspx,Actionメソッドはpublic ActionResult Add(string uid)でなければなりません
メソッドパラメータの名前はルーティング中のuidである.表意性がない異なるアクションuidの意味は異なる.ここは気分が悪いところです.
考えてみれば理由がある.URLパラメータとメソッドパラメータとが一致する.次のようになります.
Admin/Dept/List.aspx?Type=Allは、public ActionResult List(string uid,string Type)と一致します.
しかし、public ActionResult Add(string uid)が同時に存在する場合は、エラーが報告される.2つ目の不快な場所です
16. C#実現できない方法
1.2つのIEnumerableを加算し、減算はa+b,a-b形式を採用する.
これは、リスト、リロード+、-演算子から継承されるクラスを実現することができます.
17.保護されたメモリの読み取りまたは書き込みを試みます。これは通常、他のメモリが破損していることを示します。
プロジェクトで実際にこの問題に遭遇したのは,EmitによってNullオブジェクトに付与操作を行ったためである.
18.VS 2010ショートカット記録
次のエラー:Ctrl+Shift+F 12、再構築時に大量のエラーが発生する可能性があります.これにより、迅速に位置決めできます.
アノテーション、アノテーション解除:Ctrl+C、Ctrl+K
項目で選択した単語を参照する方法:Shift+Ctrl+F 12.偶然出会った.
VSでエラー自動ブレークポイントを設定:Ctrl+Alt+E.
19汎用パラメータを設定するテクニック
次の方法を定義します.
public MyOqlSet LoadDictList( List> Source ){ return null ;}
このように定義する場合、入力パラメータも厳格なListでなければならない.以下はコンパイルに失敗する.
new MyOqlSet().LoadDictList( new List>() ) ;
次のように定義された汎用コンストレイントに変更します.
public MyOqlSet LoadDictList( List Source) where T: IDictionary { return null ;}
できます.
20 Transaction.Current
現在のTransactionScopeのみが取得でき、DbTransactionについてはどうしようもなく、現在の接続でしか判断できません:conn.Transaction
21分散トランザクション
http://msdn.microsoft.com/zh-cn/library/system.transactions.transactionscope(VS.80).aspx
上の例では、間違いを食べてしまったという大きな間違いを犯しています.
異常が発生した場合、scopeはすべきではありません.Completeです.
正しい方法は次のとおりです.
using ( var tran = new TransactionScope())
{
try
{
proc1();
dbr.Insert.Execute();
tran.Complete();
}
catch
{
Log();
}
}
また、proc 1でトランザクションが使用されている場合、ストレージ中にトランザクションがコミットされてもdbr.Insertエラーが発生すると、ストレージ・プロシージャの操作もロールバックされます.そしてエラーを投げ出す.
22明示的な実装インタフェース
明示的に実装インタフェースは、string実装のIConvertibleのように直接呼び出すことはできません.呼び出す場合は、必要です:(「hello」as IConvertible).ToSingle(null) ;
23参照オブジェクトが渡されると、関数はその内容のみを変更でき、アドレスは変更できません。 static void Main(string[] args)
{
var dict = new Dictionary<string, string>();
update(dict);
dict.All(o =>
{
Console.WriteLine(o.Key + ":" + o.Value);
return true;
});
}
private static void update(Dictionary<string, string> dict)
{
dict = new Dictionary<string, string>();
dict["id"] = "1";
}
上記dictのアドレスを再指定したため、Mainから何も出力されません.dictを初期化して削除すれば目的を達成できます.
24暗黙ベースクラス
Arrayは配列の暗黙的なベースクラスです
Value Typeは値タイプの暗黙ベースクラスです
Enumはenum列挙の暗黙的ベースクラスである
MulticastDelegateはdelegateのベースクラスです.
25 MvcのサーバTransfer機能
サーバを使用できます.TransferRequestメソッドが実装されます.
26反射取得属性の場合、重複する属性値が得られる
タイプが属性を定義する場合、ベースクラスと同じ属性定義を使用し、newを使用して上書きされます.(ベースクラスの属性は虚ではない)、typeを使用している.GetProperties(BindingFlags.Public|BindingFlags.Instance)の場合、2つの属性値が得られます.サブクラス属性は前、ベースクラスは後です.
これを避けるには、System.ComponentModel.TypeDescriptor.GetPropertiesメソッド.ベースクラス属性がサブクラス属性と同じである場合、サブクラス属性が返されます.
27 Dos継続文字
http://www.newsmth.net/nForum/#!article/DOS/16444
Dos継続文字は:^
Jsの継続文字は
28. バイナリのビット設定
バイナリはあるビットの設定を増加します:a|b;
バイナリ減少あるビット設定:a&(~b);
29. FileSystemWatcher
30. クラスはクラス呼び出しにのみ使用されます。
public class呼び出しクラス
{
private class呼び出しクラス{
internal voidメソッド(){}
}
//勝手に呼び出しましょう.
}
31.インバータコヒーレンス
http://www.cnblogs.com/LoveJenny/archive/2012/03/13/2392747.html
結論:
は、Tが戻り値としてしかできないことを示す.
は、Tが入力値としてのみ使用可能であることを示す.
32. Web.コンフィグファイルのサイズに関する単位
一般的にKB、例えばmaxRequestLength
プログラム内のファイルサイズは、一般的にByte、例えばファイルのストリーム長です.
33.マルチスレッド
スレッドプールのスレッド数に影響を与える鍵は、SetMaxThreadsではなく、ThreadPoolのSetMinThreadsプロパティです.SetMaxThreadsは必要に応じて徐々に成長します.
QueueUserWorkItemとAction,FuncのBeginInvokeは同じである:スレッドプールSetMinThreadsの影響を受け,呼び出し後すぐにスレッドプールキューに入って実行を待ち,すぐに戻る.キューのサイズを制御できません.
(int)( value + 0.5) .
, , :
public static implicit operator StringLinker(string StringOne){ return new StringLinker(StringOne) ;}
しかし、Stringの値が中間プロセスでobjectとして箱詰めされる場合、object obj=value; var result = (StringLinker)obj ; StringLinkerが定義した変換方法がobjectからStringLinkerに移行していないため、この行のコードはタイプ変換をトリガーしません.必要(StringLiner)(string)obj;汎用型を用いると、汎用型変換は無効である. var result = (StringLinker)(D)obj ; ゞ悲催.!ゞ
同様の問題は、拡張メソッドにも現れ、拡張メソッド名とクラスに現れるメソッドが重複すると、拡張メソッド名が無効になります.次のようになります.
public static string ToJson(this object obj){ return obj.ToJsonString();}
public class MyOqlSet
{
public string ToJson(){ return this.ToJsonString(); }
}
var set = new MyOqlSet() ;
set.ToJson() ;
この時、MyOqlSet.ToJson()メソッドが機能します.
もしそうなら:
public string Serialize(object obj )
{
obj.ToJson() ;}
このとき、拡張方法が役立ちます.
15.Mvc 2デザインがあまりよくないところ
URLルーティングがそうである場合:{Controller}/{Action}/{uid}である.aspx,Actionメソッドはpublic ActionResult Add(string uid)でなければなりません
メソッドパラメータの名前はルーティング中のuidである.表意性がない異なるアクションuidの意味は異なる.ここは気分が悪いところです.
考えてみれば理由がある.URLパラメータとメソッドパラメータとが一致する.次のようになります.
Admin/Dept/List.aspx?Type=Allは、public ActionResult List(string uid,string Type)と一致します.
しかし、public ActionResult Add(string uid)が同時に存在する場合は、エラーが報告される.2つ目の不快な場所です
16. C#実現できない方法
1.2つのIEnumerableを加算し、減算はa+b,a-b形式を採用する.
これは、リスト、リロード+、-演算子から継承されるクラスを実現することができます.
17.保護されたメモリの読み取りまたは書き込みを試みます。これは通常、他のメモリが破損していることを示します。
プロジェクトで実際にこの問題に遭遇したのは,EmitによってNullオブジェクトに付与操作を行ったためである.
18.VS 2010ショートカット記録
次のエラー:Ctrl+Shift+F 12、再構築時に大量のエラーが発生する可能性があります.これにより、迅速に位置決めできます.
アノテーション、アノテーション解除:Ctrl+C、Ctrl+K
項目で選択した単語を参照する方法:Shift+Ctrl+F 12.偶然出会った.
VSでエラー自動ブレークポイントを設定:Ctrl+Alt+E.
19汎用パラメータを設定するテクニック
次の方法を定義します.
public MyOqlSet LoadDictList( List> Source ){ return null ;}
このように定義する場合、入力パラメータも厳格なListでなければならない.以下はコンパイルに失敗する.
new MyOqlSet().LoadDictList( new List>() ) ;
次のように定義された汎用コンストレイントに変更します.
public MyOqlSet LoadDictList( List Source) where T: IDictionary { return null ;}
できます.
20 Transaction.Current
現在のTransactionScopeのみが取得でき、DbTransactionについてはどうしようもなく、現在の接続でしか判断できません:conn.Transaction
21分散トランザクション
http://msdn.microsoft.com/zh-cn/library/system.transactions.transactionscope(VS.80).aspx
上の例では、間違いを食べてしまったという大きな間違いを犯しています.
異常が発生した場合、scopeはすべきではありません.Completeです.
正しい方法は次のとおりです.
using ( var tran = new TransactionScope())
{
try
{
proc1();
dbr.Insert.Execute();
tran.Complete();
}
catch
{
Log();
}
}
また、proc 1でトランザクションが使用されている場合、ストレージ中にトランザクションがコミットされてもdbr.Insertエラーが発生すると、ストレージ・プロシージャの操作もロールバックされます.そしてエラーを投げ出す.
22明示的な実装インタフェース
明示的に実装インタフェースは、string実装のIConvertibleのように直接呼び出すことはできません.呼び出す場合は、必要です:(「hello」as IConvertible).ToSingle(null) ;
23参照オブジェクトが渡されると、関数はその内容のみを変更でき、アドレスは変更できません。 static void Main(string[] args)
{
var dict = new Dictionary<string, string>();
update(dict);
dict.All(o =>
{
Console.WriteLine(o.Key + ":" + o.Value);
return true;
});
}
private static void update(Dictionary<string, string> dict)
{
dict = new Dictionary<string, string>();
dict["id"] = "1";
}
上記dictのアドレスを再指定したため、Mainから何も出力されません.dictを初期化して削除すれば目的を達成できます.
24暗黙ベースクラス
Arrayは配列の暗黙的なベースクラスです
Value Typeは値タイプの暗黙ベースクラスです
Enumはenum列挙の暗黙的ベースクラスである
MulticastDelegateはdelegateのベースクラスです.
25 MvcのサーバTransfer機能
サーバを使用できます.TransferRequestメソッドが実装されます.
26反射取得属性の場合、重複する属性値が得られる
タイプが属性を定義する場合、ベースクラスと同じ属性定義を使用し、newを使用して上書きされます.(ベースクラスの属性は虚ではない)、typeを使用している.GetProperties(BindingFlags.Public|BindingFlags.Instance)の場合、2つの属性値が得られます.サブクラス属性は前、ベースクラスは後です.
これを避けるには、System.ComponentModel.TypeDescriptor.GetPropertiesメソッド.ベースクラス属性がサブクラス属性と同じである場合、サブクラス属性が返されます.
27 Dos継続文字
http://www.newsmth.net/nForum/#!article/DOS/16444
Dos継続文字は:^
Jsの継続文字は
28. バイナリのビット設定
バイナリはあるビットの設定を増加します:a|b;
バイナリ減少あるビット設定:a&(~b);
29. FileSystemWatcher
30. クラスはクラス呼び出しにのみ使用されます。
public class呼び出しクラス
{
private class呼び出しクラス{
internal voidメソッド(){}
}
//勝手に呼び出しましょう.
}
31.インバータコヒーレンス
http://www.cnblogs.com/LoveJenny/archive/2012/03/13/2392747.html
結論:
は、Tが戻り値としてしかできないことを示す.
は、Tが入力値としてのみ使用可能であることを示す.
32. Web.コンフィグファイルのサイズに関する単位
一般的にKB、例えばmaxRequestLength
プログラム内のファイルサイズは、一般的にByte、例えばファイルのストリーム長です.
33.マルチスレッド
スレッドプールのスレッド数に影響を与える鍵は、SetMaxThreadsではなく、ThreadPoolのSetMinThreadsプロパティです.SetMaxThreadsは必要に応じて徐々に成長します.
QueueUserWorkItemとAction,FuncのBeginInvokeは同じである:スレッドプールSetMinThreadsの影響を受け,呼び出し後すぐにスレッドプールキューに入って実行を待ち,すぐに戻る.キューのサイズを制御できません.
1.2つのIEnumerableを加算し、減算はa+b,a-b形式を採用する.
これは、リスト、リロード+、-演算子から継承されるクラスを実現することができます.
17.保護されたメモリの読み取りまたは書き込みを試みます。これは通常、他のメモリが破損していることを示します。
プロジェクトで実際にこの問題に遭遇したのは,EmitによってNullオブジェクトに付与操作を行ったためである.
18.VS 2010ショートカット記録
次のエラー:Ctrl+Shift+F 12、再構築時に大量のエラーが発生する可能性があります.これにより、迅速に位置決めできます.
アノテーション、アノテーション解除:Ctrl+C、Ctrl+K
項目で選択した単語を参照する方法:Shift+Ctrl+F 12.偶然出会った.
VSでエラー自動ブレークポイントを設定:Ctrl+Alt+E.
19汎用パラメータを設定するテクニック
次の方法を定義します.
public MyOqlSet LoadDictList( List> Source ){ return null ;}
このように定義する場合、入力パラメータも厳格なListでなければならない.以下はコンパイルに失敗する.
new MyOqlSet().LoadDictList( new List>() ) ;
次のように定義された汎用コンストレイントに変更します.
public MyOqlSet LoadDictList( List Source) where T: IDictionary { return null ;}
できます.
20 Transaction.Current
現在のTransactionScopeのみが取得でき、DbTransactionについてはどうしようもなく、現在の接続でしか判断できません:conn.Transaction
21分散トランザクション
http://msdn.microsoft.com/zh-cn/library/system.transactions.transactionscope(VS.80).aspx
上の例では、間違いを食べてしまったという大きな間違いを犯しています.
異常が発生した場合、scopeはすべきではありません.Completeです.
正しい方法は次のとおりです.
using ( var tran = new TransactionScope())
{
try
{
proc1();
dbr.Insert.Execute();
tran.Complete();
}
catch
{
Log();
}
}
また、proc 1でトランザクションが使用されている場合、ストレージ中にトランザクションがコミットされてもdbr.Insertエラーが発生すると、ストレージ・プロシージャの操作もロールバックされます.そしてエラーを投げ出す.
22明示的な実装インタフェース
明示的に実装インタフェースは、string実装のIConvertibleのように直接呼び出すことはできません.呼び出す場合は、必要です:(「hello」as IConvertible).ToSingle(null) ;
23参照オブジェクトが渡されると、関数はその内容のみを変更でき、アドレスは変更できません。 static void Main(string[] args)
{
var dict = new Dictionary<string, string>();
update(dict);
dict.All(o =>
{
Console.WriteLine(o.Key + ":" + o.Value);
return true;
});
}
private static void update(Dictionary<string, string> dict)
{
dict = new Dictionary<string, string>();
dict["id"] = "1";
}
上記dictのアドレスを再指定したため、Mainから何も出力されません.dictを初期化して削除すれば目的を達成できます.
24暗黙ベースクラス
Arrayは配列の暗黙的なベースクラスです
Value Typeは値タイプの暗黙ベースクラスです
Enumはenum列挙の暗黙的ベースクラスである
MulticastDelegateはdelegateのベースクラスです.
25 MvcのサーバTransfer機能
サーバを使用できます.TransferRequestメソッドが実装されます.
26反射取得属性の場合、重複する属性値が得られる
タイプが属性を定義する場合、ベースクラスと同じ属性定義を使用し、newを使用して上書きされます.(ベースクラスの属性は虚ではない)、typeを使用している.GetProperties(BindingFlags.Public|BindingFlags.Instance)の場合、2つの属性値が得られます.サブクラス属性は前、ベースクラスは後です.
これを避けるには、System.ComponentModel.TypeDescriptor.GetPropertiesメソッド.ベースクラス属性がサブクラス属性と同じである場合、サブクラス属性が返されます.
27 Dos継続文字
http://www.newsmth.net/nForum/#!article/DOS/16444
Dos継続文字は:^
Jsの継続文字は
28. バイナリのビット設定
バイナリはあるビットの設定を増加します:a|b;
バイナリ減少あるビット設定:a&(~b);
29. FileSystemWatcher
30. クラスはクラス呼び出しにのみ使用されます。
public class呼び出しクラス
{
private class呼び出しクラス{
internal voidメソッド(){}
}
//勝手に呼び出しましょう.
}
31.インバータコヒーレンス
http://www.cnblogs.com/LoveJenny/archive/2012/03/13/2392747.html
結論:
は、Tが戻り値としてしかできないことを示す.
は、Tが入力値としてのみ使用可能であることを示す.
32. Web.コンフィグファイルのサイズに関する単位
一般的にKB、例えばmaxRequestLength
プログラム内のファイルサイズは、一般的にByte、例えばファイルのストリーム長です.
33.マルチスレッド
スレッドプールのスレッド数に影響を与える鍵は、SetMaxThreadsではなく、ThreadPoolのSetMinThreadsプロパティです.SetMaxThreadsは必要に応じて徐々に成長します.
QueueUserWorkItemとAction,FuncのBeginInvokeは同じである:スレッドプールSetMinThreadsの影響を受け,呼び出し後すぐにスレッドプールキューに入って実行を待ち,すぐに戻る.キューのサイズを制御できません.
次のエラー:Ctrl+Shift+F 12、再構築時に大量のエラーが発生する可能性があります.これにより、迅速に位置決めできます.
アノテーション、アノテーション解除:Ctrl+C、Ctrl+K
項目で選択した単語を参照する方法:Shift+Ctrl+F 12.偶然出会った.
VSでエラー自動ブレークポイントを設定:Ctrl+Alt+E.
19汎用パラメータを設定するテクニック
次の方法を定義します.
public MyOqlSet LoadDictList( List> Source ){ return null ;}
このように定義する場合、入力パラメータも厳格なListでなければならない.以下はコンパイルに失敗する.
new MyOqlSet().LoadDictList( new List>() ) ;
次のように定義された汎用コンストレイントに変更します.
public MyOqlSet LoadDictList( List Source) where T: IDictionary { return null ;}
できます.
20 Transaction.Current
現在のTransactionScopeのみが取得でき、DbTransactionについてはどうしようもなく、現在の接続でしか判断できません:conn.Transaction
21分散トランザクション
http://msdn.microsoft.com/zh-cn/library/system.transactions.transactionscope(VS.80).aspx
上の例では、間違いを食べてしまったという大きな間違いを犯しています.
異常が発生した場合、scopeはすべきではありません.Completeです.
正しい方法は次のとおりです.
using ( var tran = new TransactionScope())
{
try
{
proc1();
dbr.Insert.Execute();
tran.Complete();
}
catch
{
Log();
}
}
また、proc 1でトランザクションが使用されている場合、ストレージ中にトランザクションがコミットされてもdbr.Insertエラーが発生すると、ストレージ・プロシージャの操作もロールバックされます.そしてエラーを投げ出す.
22明示的な実装インタフェース
明示的に実装インタフェースは、string実装のIConvertibleのように直接呼び出すことはできません.呼び出す場合は、必要です:(「hello」as IConvertible).ToSingle(null) ;
23参照オブジェクトが渡されると、関数はその内容のみを変更でき、アドレスは変更できません。 static void Main(string[] args)
{
var dict = new Dictionary<string, string>();
update(dict);
dict.All(o =>
{
Console.WriteLine(o.Key + ":" + o.Value);
return true;
});
}
private static void update(Dictionary<string, string> dict)
{
dict = new Dictionary<string, string>();
dict["id"] = "1";
}
上記dictのアドレスを再指定したため、Mainから何も出力されません.dictを初期化して削除すれば目的を達成できます.
24暗黙ベースクラス
Arrayは配列の暗黙的なベースクラスです
Value Typeは値タイプの暗黙ベースクラスです
Enumはenum列挙の暗黙的ベースクラスである
MulticastDelegateはdelegateのベースクラスです.
25 MvcのサーバTransfer機能
サーバを使用できます.TransferRequestメソッドが実装されます.
26反射取得属性の場合、重複する属性値が得られる
タイプが属性を定義する場合、ベースクラスと同じ属性定義を使用し、newを使用して上書きされます.(ベースクラスの属性は虚ではない)、typeを使用している.GetProperties(BindingFlags.Public|BindingFlags.Instance)の場合、2つの属性値が得られます.サブクラス属性は前、ベースクラスは後です.
これを避けるには、System.ComponentModel.TypeDescriptor.GetPropertiesメソッド.ベースクラス属性がサブクラス属性と同じである場合、サブクラス属性が返されます.
27 Dos継続文字
http://www.newsmth.net/nForum/#!article/DOS/16444
Dos継続文字は:^
Jsの継続文字は
28. バイナリのビット設定
バイナリはあるビットの設定を増加します:a|b;
バイナリ減少あるビット設定:a&(~b);
29. FileSystemWatcher
30. クラスはクラス呼び出しにのみ使用されます。
public class呼び出しクラス
{
private class呼び出しクラス{
internal voidメソッド(){}
}
//勝手に呼び出しましょう.
}
31.インバータコヒーレンス
http://www.cnblogs.com/LoveJenny/archive/2012/03/13/2392747.html
結論:
は、Tが戻り値としてしかできないことを示す.
は、Tが入力値としてのみ使用可能であることを示す.
32. Web.コンフィグファイルのサイズに関する単位
一般的にKB、例えばmaxRequestLength
プログラム内のファイルサイズは、一般的にByte、例えばファイルのストリーム長です.
33.マルチスレッド
スレッドプールのスレッド数に影響を与える鍵は、SetMaxThreadsではなく、ThreadPoolのSetMinThreadsプロパティです.SetMaxThreadsは必要に応じて徐々に成長します.
QueueUserWorkItemとAction,FuncのBeginInvokeは同じである:スレッドプールSetMinThreadsの影響を受け,呼び出し後すぐにスレッドプールキューに入って実行を待ち,すぐに戻る.キューのサイズを制御できません.
このように定義する場合、入力パラメータも厳格なList
new MyOqlSet().LoadDictList( new List
次のように定義された汎用コンストレイントに変更します.
public MyOqlSet LoadDictList
できます.
20 Transaction.Current
現在のTransactionScopeのみが取得でき、DbTransactionについてはどうしようもなく、現在の接続でしか判断できません:conn.Transaction
21分散トランザクション
http://msdn.microsoft.com/zh-cn/library/system.transactions.transactionscope(VS.80).aspx
上の例では、間違いを食べてしまったという大きな間違いを犯しています.
異常が発生した場合、scopeはすべきではありません.Completeです.
正しい方法は次のとおりです.
using ( var tran = new TransactionScope())
{
try
{
proc1();
dbr.Insert.Execute();
tran.Complete();
}
catch
{
Log();
}
}
また、proc 1でトランザクションが使用されている場合、ストレージ中にトランザクションがコミットされてもdbr.Insertエラーが発生すると、ストレージ・プロシージャの操作もロールバックされます.そしてエラーを投げ出す.
22明示的な実装インタフェース
明示的に実装インタフェースは、string実装のIConvertibleのように直接呼び出すことはできません.呼び出す場合は、必要です:(「hello」as IConvertible).ToSingle(null) ;
23参照オブジェクトが渡されると、関数はその内容のみを変更でき、アドレスは変更できません。 static void Main(string[] args)
{
var dict = new Dictionary<string, string>();
update(dict);
dict.All(o =>
{
Console.WriteLine(o.Key + ":" + o.Value);
return true;
});
}
private static void update(Dictionary<string, string> dict)
{
dict = new Dictionary<string, string>();
dict["id"] = "1";
}
上記dictのアドレスを再指定したため、Mainから何も出力されません.dictを初期化して削除すれば目的を達成できます.
24暗黙ベースクラス
Arrayは配列の暗黙的なベースクラスです
Value Typeは値タイプの暗黙ベースクラスです
Enumはenum列挙の暗黙的ベースクラスである
MulticastDelegateはdelegateのベースクラスです.
25 MvcのサーバTransfer機能
サーバを使用できます.TransferRequestメソッドが実装されます.
26反射取得属性の場合、重複する属性値が得られる
タイプが属性を定義する場合、ベースクラスと同じ属性定義を使用し、newを使用して上書きされます.(ベースクラスの属性は虚ではない)、typeを使用している.GetProperties(BindingFlags.Public|BindingFlags.Instance)の場合、2つの属性値が得られます.サブクラス属性は前、ベースクラスは後です.
これを避けるには、System.ComponentModel.TypeDescriptor.GetPropertiesメソッド.ベースクラス属性がサブクラス属性と同じである場合、サブクラス属性が返されます.
27 Dos継続文字
http://www.newsmth.net/nForum/#!article/DOS/16444
Dos継続文字は:^
Jsの継続文字は
28. バイナリのビット設定
バイナリはあるビットの設定を増加します:a|b;
バイナリ減少あるビット設定:a&(~b);
29. FileSystemWatcher
30. クラスはクラス呼び出しにのみ使用されます。
public class呼び出しクラス
{
private class呼び出しクラス{
internal voidメソッド(){}
}
//勝手に呼び出しましょう.
}
31.インバータコヒーレンス
http://www.cnblogs.com/LoveJenny/archive/2012/03/13/2392747.html
結論:
は、Tが戻り値としてしかできないことを示す.
は、Tが入力値としてのみ使用可能であることを示す.
32. Web.コンフィグファイルのサイズに関する単位
一般的にKB、例えばmaxRequestLength
プログラム内のファイルサイズは、一般的にByte、例えばファイルのストリーム長です.
33.マルチスレッド
スレッドプールのスレッド数に影響を与える鍵は、SetMaxThreadsではなく、ThreadPoolのSetMinThreadsプロパティです.SetMaxThreadsは必要に応じて徐々に成長します.
QueueUserWorkItemとAction,FuncのBeginInvokeは同じである:スレッドプールSetMinThreadsの影響を受け,呼び出し後すぐにスレッドプールキューに入って実行を待ち,すぐに戻る.キューのサイズを制御できません.
http://msdn.microsoft.com/zh-cn/library/system.transactions.transactionscope(VS.80).aspx
上の例では、間違いを食べてしまったという大きな間違いを犯しています.
異常が発生した場合、scopeはすべきではありません.Completeです.
正しい方法は次のとおりです.
using ( var tran = new TransactionScope())
{
try
{
proc1();
dbr.Insert.Execute();
tran.Complete();
}
catch
{
Log();
}
}
また、proc 1でトランザクションが使用されている場合、ストレージ中にトランザクションがコミットされてもdbr.Insertエラーが発生すると、ストレージ・プロシージャの操作もロールバックされます.そしてエラーを投げ出す.
22明示的な実装インタフェース
明示的に実装インタフェースは、string実装のIConvertibleのように直接呼び出すことはできません.呼び出す場合は、必要です:(「hello」as IConvertible).ToSingle(null) ;
23参照オブジェクトが渡されると、関数はその内容のみを変更でき、アドレスは変更できません。 static void Main(string[] args)
{
var dict = new Dictionary<string, string>();
update(dict);
dict.All(o =>
{
Console.WriteLine(o.Key + ":" + o.Value);
return true;
});
}
private static void update(Dictionary<string, string> dict)
{
dict = new Dictionary<string, string>();
dict["id"] = "1";
}
上記dictのアドレスを再指定したため、Mainから何も出力されません.dictを初期化して削除すれば目的を達成できます.
24暗黙ベースクラス
Arrayは配列の暗黙的なベースクラスです
Value Typeは値タイプの暗黙ベースクラスです
Enumはenum列挙の暗黙的ベースクラスである
MulticastDelegateはdelegateのベースクラスです.
25 MvcのサーバTransfer機能
サーバを使用できます.TransferRequestメソッドが実装されます.
26反射取得属性の場合、重複する属性値が得られる
タイプが属性を定義する場合、ベースクラスと同じ属性定義を使用し、newを使用して上書きされます.(ベースクラスの属性は虚ではない)、typeを使用している.GetProperties(BindingFlags.Public|BindingFlags.Instance)の場合、2つの属性値が得られます.サブクラス属性は前、ベースクラスは後です.
これを避けるには、System.ComponentModel.TypeDescriptor.GetPropertiesメソッド.ベースクラス属性がサブクラス属性と同じである場合、サブクラス属性が返されます.
27 Dos継続文字
http://www.newsmth.net/nForum/#!article/DOS/16444
Dos継続文字は:^
Jsの継続文字は
28. バイナリのビット設定
バイナリはあるビットの設定を増加します:a|b;
バイナリ減少あるビット設定:a&(~b);
29. FileSystemWatcher
30. クラスはクラス呼び出しにのみ使用されます。
public class呼び出しクラス
{
private class呼び出しクラス{
internal voidメソッド(){}
}
//勝手に呼び出しましょう.
}
31.インバータコヒーレンス
http://www.cnblogs.com/LoveJenny/archive/2012/03/13/2392747.html
結論:
は、Tが戻り値としてしかできないことを示す.
は、Tが入力値としてのみ使用可能であることを示す.
32. Web.コンフィグファイルのサイズに関する単位
一般的にKB、例えばmaxRequestLength
プログラム内のファイルサイズは、一般的にByte、例えばファイルのストリーム長です.
33.マルチスレッド
スレッドプールのスレッド数に影響を与える鍵は、SetMaxThreadsではなく、ThreadPoolのSetMinThreadsプロパティです.SetMaxThreadsは必要に応じて徐々に成長します.
QueueUserWorkItemとAction,FuncのBeginInvokeは同じである:スレッドプールSetMinThreadsの影響を受け,呼び出し後すぐにスレッドプールキューに入って実行を待ち,すぐに戻る.キューのサイズを制御できません.
static void Main(string[] args)
{
var dict = new Dictionary<string, string>();
update(dict);
dict.All(o =>
{
Console.WriteLine(o.Key + ":" + o.Value);
return true;
});
}
private static void update(Dictionary<string, string> dict)
{
dict = new Dictionary<string, string>();
dict["id"] = "1";
}
上記dictのアドレスを再指定したため、Mainから何も出力されません.dictを初期化して削除すれば目的を達成できます.
24暗黙ベースクラス
Arrayは配列の暗黙的なベースクラスです
Value Typeは値タイプの暗黙ベースクラスです
Enumはenum列挙の暗黙的ベースクラスである
MulticastDelegateはdelegateのベースクラスです.
25 MvcのサーバTransfer機能
サーバを使用できます.TransferRequestメソッドが実装されます.
26反射取得属性の場合、重複する属性値が得られる
タイプが属性を定義する場合、ベースクラスと同じ属性定義を使用し、newを使用して上書きされます.(ベースクラスの属性は虚ではない)、typeを使用している.GetProperties(BindingFlags.Public|BindingFlags.Instance)の場合、2つの属性値が得られます.サブクラス属性は前、ベースクラスは後です.
これを避けるには、System.ComponentModel.TypeDescriptor.GetPropertiesメソッド.ベースクラス属性がサブクラス属性と同じである場合、サブクラス属性が返されます.
27 Dos継続文字
http://www.newsmth.net/nForum/#!article/DOS/16444
Dos継続文字は:^
Jsの継続文字は
28. バイナリのビット設定
バイナリはあるビットの設定を増加します:a|b;
バイナリ減少あるビット設定:a&(~b);
29. FileSystemWatcher
30. クラスはクラス呼び出しにのみ使用されます。
public class呼び出しクラス
{
private class呼び出しクラス{
internal voidメソッド(){}
}
//勝手に呼び出しましょう.
}
31.インバータコヒーレンス
http://www.cnblogs.com/LoveJenny/archive/2012/03/13/2392747.html
結論:
は、Tが戻り値としてしかできないことを示す.
は、Tが入力値としてのみ使用可能であることを示す.
32. Web.コンフィグファイルのサイズに関する単位
一般的にKB、例えばmaxRequestLength
プログラム内のファイルサイズは、一般的にByte、例えばファイルのストリーム長です.
33.マルチスレッド
スレッドプールのスレッド数に影響を与える鍵は、SetMaxThreadsではなく、ThreadPoolのSetMinThreadsプロパティです.SetMaxThreadsは必要に応じて徐々に成長します.
QueueUserWorkItemとAction,FuncのBeginInvokeは同じである:スレッドプールSetMinThreadsの影響を受け,呼び出し後すぐにスレッドプールキューに入って実行を待ち,すぐに戻る.キューのサイズを制御できません.
サーバを使用できます.TransferRequestメソッドが実装されます.
26反射取得属性の場合、重複する属性値が得られる
タイプが属性を定義する場合、ベースクラスと同じ属性定義を使用し、newを使用して上書きされます.(ベースクラスの属性は虚ではない)、typeを使用している.GetProperties(BindingFlags.Public|BindingFlags.Instance)の場合、2つの属性値が得られます.サブクラス属性は前、ベースクラスは後です.
これを避けるには、System.ComponentModel.TypeDescriptor.GetPropertiesメソッド.ベースクラス属性がサブクラス属性と同じである場合、サブクラス属性が返されます.
27 Dos継続文字
http://www.newsmth.net/nForum/#!article/DOS/16444
Dos継続文字は:^
Jsの継続文字は
28. バイナリのビット設定
バイナリはあるビットの設定を増加します:a|b;
バイナリ減少あるビット設定:a&(~b);
29. FileSystemWatcher
30. クラスはクラス呼び出しにのみ使用されます。
public class呼び出しクラス
{
private class呼び出しクラス{
internal voidメソッド(){}
}
//勝手に呼び出しましょう.
}
31.インバータコヒーレンス
http://www.cnblogs.com/LoveJenny/archive/2012/03/13/2392747.html
結論:
は、Tが戻り値としてしかできないことを示す.
は、Tが入力値としてのみ使用可能であることを示す.
32. Web.コンフィグファイルのサイズに関する単位
一般的にKB、例えばmaxRequestLength
プログラム内のファイルサイズは、一般的にByte、例えばファイルのストリーム長です.
33.マルチスレッド
スレッドプールのスレッド数に影響を与える鍵は、SetMaxThreadsではなく、ThreadPoolのSetMinThreadsプロパティです.SetMaxThreadsは必要に応じて徐々に成長します.
QueueUserWorkItemとAction,FuncのBeginInvokeは同じである:スレッドプールSetMinThreadsの影響を受け,呼び出し後すぐにスレッドプールキューに入って実行を待ち,すぐに戻る.キューのサイズを制御できません.
http://www.newsmth.net/nForum/#!article/DOS/16444
Dos継続文字は:^
Jsの継続文字は
28. バイナリのビット設定
バイナリはあるビットの設定を増加します:a|b;
バイナリ減少あるビット設定:a&(~b);
29. FileSystemWatcher
30. クラスはクラス呼び出しにのみ使用されます。
public class呼び出しクラス
{
private class呼び出しクラス{
internal voidメソッド(){}
}
//勝手に呼び出しましょう.
}
31.インバータコヒーレンス
http://www.cnblogs.com/LoveJenny/archive/2012/03/13/2392747.html
結論:
は、Tが戻り値としてしかできないことを示す.
は、Tが入力値としてのみ使用可能であることを示す.
32. Web.コンフィグファイルのサイズに関する単位
一般的にKB、例えばmaxRequestLength
プログラム内のファイルサイズは、一般的にByte、例えばファイルのストリーム長です.
33.マルチスレッド
スレッドプールのスレッド数に影響を与える鍵は、SetMaxThreadsではなく、ThreadPoolのSetMinThreadsプロパティです.SetMaxThreadsは必要に応じて徐々に成長します.
QueueUserWorkItemとAction,FuncのBeginInvokeは同じである:スレッドプールSetMinThreadsの影響を受け,呼び出し後すぐにスレッドプールキューに入って実行を待ち,すぐに戻る.キューのサイズを制御できません.
30. クラスはクラス呼び出しにのみ使用されます。
public class呼び出しクラス
{
private class呼び出しクラス{
internal voidメソッド(){}
}
//勝手に呼び出しましょう.
}
31.インバータコヒーレンス
http://www.cnblogs.com/LoveJenny/archive/2012/03/13/2392747.html
結論:
は、Tが戻り値としてしかできないことを示す.
は、Tが入力値としてのみ使用可能であることを示す.
32. Web.コンフィグファイルのサイズに関する単位
一般的にKB、例えばmaxRequestLength
プログラム内のファイルサイズは、一般的にByte、例えばファイルのストリーム長です.
33.マルチスレッド
スレッドプールのスレッド数に影響を与える鍵は、SetMaxThreadsではなく、ThreadPoolのSetMinThreadsプロパティです.SetMaxThreadsは必要に応じて徐々に成長します.
QueueUserWorkItemとAction,FuncのBeginInvokeは同じである:スレッドプールSetMinThreadsの影響を受け,呼び出し後すぐにスレッドプールキューに入って実行を待ち,すぐに戻る.キューのサイズを制御できません.
http://www.cnblogs.com/LoveJenny/archive/2012/03/13/2392747.html
結論:
32. Web.コンフィグファイルのサイズに関する単位
一般的にKB、例えばmaxRequestLength
プログラム内のファイルサイズは、一般的にByte、例えばファイルのストリーム長です.
33.マルチスレッド
スレッドプールのスレッド数に影響を与える鍵は、SetMaxThreadsではなく、ThreadPoolのSetMinThreadsプロパティです.SetMaxThreadsは必要に応じて徐々に成長します.
QueueUserWorkItemとAction,FuncのBeginInvokeは同じである:スレッドプールSetMinThreadsの影響を受け,呼び出し後すぐにスレッドプールキューに入って実行を待ち,すぐに戻る.キューのサイズを制御できません.
スレッドプールのスレッド数に影響を与える鍵は、SetMaxThreadsではなく、ThreadPoolのSetMinThreadsプロパティです.SetMaxThreadsは必要に応じて徐々に成長します.
QueueUserWorkItemとAction,FuncのBeginInvokeは同じである:スレッドプールSetMinThreadsの影響を受け,呼び出し後すぐにスレッドプールキューに入って実行を待ち,すぐに戻る.キューのサイズを制御できません.