1

オブジェクト パスを入力するときに Intellisense で整理されて読みやすくなるように、クラス階層ツリーの作成に取り組んでいます。たとえば、「System.IO.FileStream()」のように。

var を使用すると機能することに気付きましたが、完全なクラスの命名を使用すると機能しません。また、 List<> オブジェクトを使用すると機能しないことに気付きました。誰かが私になぜ、そして何が間違っていたのか説明できますか. ありがとう...

public class Vehicle
{
    public string Year { get; set; }
    public string Make { get; set; }
    public string Model { get; set; }
    public string Trim { get; set; }
}
public class Dealer
{
    public Vehicle VehicleData { get { return new Vehicle(); } set; }
}

これは動作します...

var vehicle = new Dealer().VehicleData;
vehicle.Year = "2007";
vehicle.Make = "Ford";

これは機能しません...

Dealer().VehicleData vehicle = new Dealer().VehicleData;
vehicle.Year = "2004";
vehicle.Make = "Buick";

これも効かない…

var vehicles = new List<Dealer().VehicleData>();
vehicles.Add(
    new Dealer().VehicleData {
        Year = "2001", 
        Make = "Toyota"
    }
);
vehicles.Add(
    new Dealer().VehicleData {
        Year = "2003", 
        Make = "Volvo"
    }
);
4

1 に答える 1

7

Dealer().VehicleData型ではなく、プロパティです。

変数をプロパティ型として宣言することはできません。

これは、次のようにほとんど意味がありません。

public class Person
{
    public string Name { get; set; }
}

...
new Person().Name test;

次の行に注意してください。

var vehicle = new Dealer().VehicleData;

実際には、次の行と同じ意味です。

Vehicle vehicle = new Dealer().VehicleData;

また、この場合、ディーラーへの参照を保存するのではなく、車両への参照のみを保存することに注意してください。したがって、上記のコードを次のように記述する必要があります。

var vehicle = new Vehicle();

名前空間の概念を実際に探していますか?

これ:

System.IO.FileStream()

実際には次のように使用する必要があります。

new System.IO.FileStream()

パーツは次のとおりです。

 +----------------------+---- calling the constructor of FileStream
 |                      |
v+v                     vv
new System.IO.FileStream()
    ^---+---^ ^----+---^
        |          |
        |          +-- the name of the class
        |
        +-- the namespace of the FileStream class

それを宣言するには:

namespace System.IO
{
    public class FileStream
    {
        public FileStream()
        {
        }
    }
}

( FileStreamには実際にはパラメーターなしのコンストラクターがないため、上記は実際には間違っていますが、要点はわかります)

于 2013-07-28T18:53:25.707 に答える