TECH I.S.

C# コンストラクター


コンストラクター

コンストラクタは、オブジェクトの初期化に使用される特別なメソッドです。コンストラクターの利点は、クラスのオブジェクトが作成されたときに呼び出されることです。これはフィールドの初期値を設定するために使用できます。

コンストラクターを作成します。

{.language-csharp .techis-white}
// Create a Car class
class Car
{
public string model; // Create a field
// Create a
<strong>class constructor</strong>
for the Car class
public Car()
{
model = "Mustang"; // Set the initial value for model
}
static void Main(string[] args)
{
Car Ford = new Car(); // Create an object of the Car Class (this will
<strong>call the constructor</strong>
)
Console.WriteLine(Ford.model); // Print the value of model
}
}
// Outputs "Mustang"

コンストラクター名はクラス名と一致する必要があり、戻り値の型(voidやintなど)を持つことはできないことに注意してください。 また、オブジェクトの作成時にコンストラクターが呼び出されることに注意してください。 すべてのクラスには、既定でコンストラクターがあります。自分でクラスコンストラクターを作成しない場合、C#によってコンストラクターが作成されます。ただし、フィールドの初期値を設定することはできません。

コンストラクターは時間を節約します!このページの最後の例を見て、その理由を本当に理解してください。


コンストラクターのパラメーター

コンストラクターは、フィールドの初期化に使用されるパラメーターを受け取ることもできます。

次の例では、コンストラクタに文字列modelNameパラメータを追加しています。コンストラクタの内部でmodelmodelNameに設定します(model=modelName)。
コンストラクタを呼び出すときに、コンストラクタにパラメータ("Mustang")を渡すと、modelの値が "Mustang"に設定されます。

{.language-csharp .techis-white}
class Car
{
public string model;
// Create a class constructor with a parameter
public Car(string modelName)
{
model = modelName;
}
static void Main(string[] args)
{
Car Ford = new Car("Mustang");
Console.WriteLine(Ford.model);
}
}
// Outputs "Mustang"

必要な数のパラメーターを指定できます。

{.language-java .techis-white}
class Car
{
public string model;
public string color;
public int year;
// Create a class constructor with multiple parameters
public Car(string modelName, string modelColor, int modelYear)
{
model = modelName;
color = modelColor;
year = modelYear;
}
static void Main(string[] args)
{
Car Ford = new Car("Mustang", "Red", 1969);
Console.WriteLine(Ford.color + " " + Ford.year + " " + Ford.model);
}
}

// Outputs Red 1969 Mustang

ヒント:他のメソッドと同様に、コンストラクターはさまざまな数のパラメーターを使用してオーバーライド出来ます。


コンストラクターで時間を節約

前の章の例を考えると、コードの量を減らすのに役立つため、コンストラクターが非常に便利であることがわかります。

コンストラクタ無し

prog.cs

{.language-csharp .techis-white}
class Program
{
static void Main(string[] args)
{
    Car Ford = new Car();
Ford.model = "Mustang";
Ford.color = "red";
Ford.year = 1969;
    Car Opel = new Car();
Opel.model = "Astra";
Opel.color = "white";
Opel.year = 2005;
    Console.WriteLine(Ford.model);
Console.WriteLine(Opel.model);
  }
}




コンストラクターを使用した場合

prog.cs

{.language-csharp .techis-white}
class Program
{
static void Main(string[] args)
{
    Car Ford = new Car("Mustang", "Red", 1969);
Car Opel = new Car("Astra", "White", 2005);
    Console.WriteLine(Ford.model);
Console.WriteLine(Opel.model);
  }
}




プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細