2011-01-19 7 views

答えて

0

値を種類は必ずしもnewキーワードを使用せずに構築されていませんが、サポートは言い換えるなど

あなたは一般的に、この書き込み、整数、文字列のように、プリミティブ型の言語であります。

int i = 10; 
string s = "test"; 

しかしを、独自の値型を定義する場合は、variablを宣言します初期値を持つESは、あなたがnewを使用する必要があります。

Point p = new Point(10, 20); 

私はあなたが求めているものを明確にする必要があると思います。

+0

あなたは「なぜ」という質問をしました...ああ、私はそれが「何か」と言ったと思った。 –

+0

私は彼が何を意味するか知っていると思う。私も混乱しています。 :( – leppie

0

基本的に、オブジェクトを除くすべてのプリミティブCLRタイプは、newを必要としません。

これを任意の(blittable)値型にも適用する方法があります。安全ではなく、かなり類似しています。

更新日:

質問を変更しました。あなたは誤解されているようです。クラスの初期化時に発生するデフォルト値について話している場合を除き、まだカバーの下にある 'new'を使用しています。

例:

class Foo 
{ 
    Point foo; 
} 

new Foo()をやって、fooの値がnew Point()を意味し、そのデフォルト値に初期化されます。

上記のコードは効果的である:

class Foo 
{ 
    Point foo; 
    Foo() 
    { 
    foo = default(Point); // which is new Point() 
    } 
}