.NETに関する質問#2

質問の最初の部分はここにあります。

私たちは続けます:



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あなたがマイナスなら、少なくとも何のために書いて...



All Articles