私たちは続けます:
1)ご存知のように、System.ArrayはIEnumerable <T>、ICollection <T>、IList <T>を実装しません。Tは配列のタイプです(ところで、なぜですか?)。 ただし、このような配列を使用する場合、これらのインターフェイスが提供するすべてを使用できます(配列に参照型の要素のみが含まれる場合)。 どう?
2)次のコードを実行しました。
Console.WriteLine(a.GetType()) ;
そして結果を得た
SomeNamespace.SomeType[*];
これはどんな種類ですか?
3)どのコードがより速く動作し、その理由は?
A
...
Int32[] a = new Int32[100];
int len = a.Length;
for(Int32 index = 0; index < len; index++) {
//operations with a[index];
}
...
または
B
...
Int32[] a = new Int32[100];
for(Int32 index = 0; index < a.Length; index++) {
//operations with a[index];
}
...
4)次の2つの方法の作業の違いは何ですか?
private static Int32 M<T>(T t) where T: IComparable{...}
そして
private static Int32 M(IComparable t) {...}
5) ドキュメントでは、Int32型は次のように定義されています。
[SerializableAttribute]
[ComVisibleAttribute(true)]
public struct Int32 : IComparable, IFormattable,
IConvertible, IComparable<int>, IEquatable<int>
ただし、次のコードはコンパイルエラーで失敗します(intには 'ToSingle'の定義が含まれていません):
Int32 x = 5;
Single s = x.ToSingle();
なぜそう
6)デリゲートチェーンを呼び出して、最後のメソッドだけでなく、すべてのメソッドの戻り値を取得する方法はありますか?
7)属性を適用できないメソッドはどれですか?
今日は以上です。 必要に応じて、ディスカッション後の回答:)
PSあなたがマイナスなら、少なくとも何のために書いて...