2009-10-09 1 views

答えて

11

名前で明示的に宣言された型。たとえば、宣言したクラスや構造体は、名前付きの型です。

名前のない宣言された匿名型もあり、コンパイラはその型に開発者がアクセスできない名前を割り当てます。

types in C#のさまざまな種類について詳しく読むことができます。

3

は明示的にタイプされた変数であり、匿名タイプの変数とは対照的です。匿名型でないものはすべて名前付き型です。 (と思う).NET 3.0で導入された

は、匿名型は、その目的のために、明示的に名前付きの型を定義することなく、読み取り専用性質をのセットを含むオブジェクトを作成するための便利な方法を提供します。

匿名型の実装も、(オブジェクトのプロパティのタイピング用)type inferenceの使用を必要とするがVARキーワードプログラマを解放することにより、匿名型をImplicitly Typed Local Variablesと混同されるべきではありません明示的に変数型を記述するのではなく、型がコンパイラによって効果的に提供される場所です。 (ほとんどの暗黙的に型付けされた変数は匿名型ではないので、名前付き型です。

+0

これは間違っています。型推論と匿名型は関係ありません。型推論は、場合によっては、汎用パラメータまたはvarキーワードを除外するために使用できます。匿名型は、その場で作成される名前のない型です。 – recursive

+0

@再帰ありがとうございました!私はこれを読んで、どこが間違っているのかを認識します。型推論は、匿名型の場合にしばしば使用されますが、2つの概念はまったく別物です。私はそれに応じて私の応答を修正する(または完全にそれを殺す...) – mjv

+1

クール。 Downvoteが削除されました。 – recursive

2

Annonymous Typeでないタイプは「名前付きタイプ」です。

+1

定義によると、2次元配列の整数型は名前付き型です。それは実際に理にかなっていますか?もしそうなら、その名前は何ですか? –

+1

@エリックこの質問を読んでくれてありがとう。紛失や誤解があると感じた場合は、このディスカッションにもっと光を当ててください。上記のMJVのコメントからの – csharpbaby

2

名前付きの型は、作成して名前を付ける明示的に定義された型(構造体、クラスなど)です。この場合

例えば:

public class Foo 
{ 
    public string Bar{ get; set; } 
} 

、fooが名前付きタイプです。

一般的にその場で作成された匿名型、とは対照的に、これがある:私はちょうど新しいオブジェクトを作成し

var MyFoo = new { Bar = "some text" }; 

、MYFOOと呼ばれます。明示的に型名を与えたわけではありませんが、暗黙的に値 "some text"を持つStringプロパティBarを与えました。

+0

、 'Var MyFoo'は暗黙のうちにタイプされた変数を意味します。あなたが言及したように、この匿名のタイプはどうですか?ありがとう – csharpbaby

関連する問題