目次
C# でのコンストラクターの動作
C# のコンストラクターの上位 5 種類
1.デフォルトのコンストラクター
2.パラメーター化されたコンストラクター
3.コンストラクターをコピー
4.静的コンストラクター
5. Private Constructor
Conclusion
Recommended Article

C# のコンストラクター

Sep 03, 2024 pm 03:12 PM
c# c# tutorial

コンストラクターはオブジェクト指向プログラミングにおいて非常に重要な役割を果たします。次の点を参考にして、C# におけるコンストラクターの役割を理解しましょう:

  • コンストラクターは、クラス変数の初期化を担当するクラス内に存在する特別なメソッドです。
  • その名前はクラス名と同じです。
  • クラスのインスタンスを作成すると自動的に実行されます。
  • コンストラクターは値を返しません。
  • コンストラクターを定義しない場合、暗黙的なコンストラクターが常にクラスによって提供され、これはデフォルト コンストラクターと呼ばれます。

構文:

public class Student()
{
//constructor
public Student()
{
//code
}
}
ログイン後にコピー

ここで、public Student() は戻り値の型を持たず、void さえも持たないメソッドであり、その名前はクラス名と同じ、つまり「Student」です。したがって、このメソッドはこのクラスのコンストラクターです。

次を使用してこのクラスのオブジェクトを作成する場合:

Student obj = new Student();
ログイン後にコピー

その後、コンストラクター内のコードが実行されます。

C# でのコンストラクターの動作

1. コンストラクターは、新しいオブジェクトのデータ メンバーを初期化します。これは、メモリが新しいオブジェクトに割り当てられた直後に、「new」演算子によって呼び出されます。

2. 明示的なコンストラクター (ユーザーが定義したコンストラクター) はパラメーターなしまたはパラメーター化できます。パラメーター化されている場合、コンストラクターに渡される値をクラスのデータ メンバーに割り当てることができます。

3. 暗黙的コンストラクターは、クラスのインスタンスを複数作成した場合でも、クラスの変数を同じ値で初期化します。

例:

コード:

using System;
public class ConstructorDemo
{
public int num = 10;
public static void Main()
{
ConstructorDemo obj1 = new ConstructorDemo();
ConstructorDemo obj2 = new ConstructorDemo();
ConstructorDemo obj3 = new ConstructorDemo();
Console.WriteLine("obj1.num = "+obj1.num+"\nobj2.num = "+obj2.num
+"\nobj3.num = "+obj3.num);
}
}
ログイン後にコピー

出力:

C# のコンストラクター

上記プログラムの図解:

C# のコンストラクター

4. パラメーターを持つ明示的なコンストラクターを使用すると、クラスのインスタンスを作成するたびに、クラスの変数を異なる値で初期化できます。

例:

コード:

using System;
public class ConstructorDemo
{
public int num;
//explicit constructor
public ConstructorDemo(int num)
{
this.num = num;
}
public static void Main()
{
ConstructorDemo obj1 = new ConstructorDemo(10);
ConstructorDemo obj2 = new ConstructorDemo(20);
ConstructorDemo obj3 = new ConstructorDemo(30);
Console.WriteLine("obj1.num = "+obj1.num+"\nobj2.num = "+obj2.num
+"\nobj3.num = "+obj3.num);
}
}
ログイン後にコピー

出力:

C# のコンストラクター

上記プログラムの図解:

C# のコンストラクター

C# のコンストラクターの上位 5 種類

C# には 5 種類のコンストラクターが用意されています。それらは次のとおりです:

1.デフォルトのコンストラクター

  • パラメータのないコンストラクタは、デフォルト コンストラクタと呼ばれます。明示的に定義しない場合は、コンパイラによって暗黙的に提供されます。
  • そのような場合、それを暗黙的なコンストラクターと呼ぶことができます。デフォルトまたは暗黙的なコンストラクターは、クラスのすべてのデータ メンバーをデフォルト値で初期化します。たとえば、すべての数値フィールドをゼロに、すべての文字列フィールドとオブジェクト フィールドを null に初期化します。

例:

コード:

using System;
public class DefaultConstructor
{
public int num;
public string str;
}
public class Demo
{
public static void Main()
{
DefaultConstructor obj = new DefaultConstructor();
Console.WriteLine("obj.num = "+obj.num+"\nobj.str = "+obj.str);
}
}
ログイン後にコピー

出力:

C# のコンストラクター

2.パラメーター化されたコンストラクター

少なくとも 1 つのパラメーターを持つコンストラクターは、パラメーター化されたコンストラクターと呼ばれます。クラスのインスタンスの作成中に、コンストラクターへのパラメーターを渡すことができます。これにより、クラスの各インスタンスを異なる値で初期化できます。

例:

コード:

using System;
public class ParameterizedConstructor
{
public int num;
public string str;
//parameterized constructor
public ParameterizedConstructor(int num, string str)
{
this.num = num;
this.str = str;
}
}
public class Demo
{
public static void Main()
{
//passing values to constructor while creating instance
ParameterizedConstructor obj = new ParameterizedConstructor(50, "constructor");
Console.WriteLine("obj.num = "+obj.num+"\nobj.str = "+obj.str);
}
}
ログイン後にコピー

出力:

C# のコンストラクター

3.コンストラクターをコピー

これは、同じクラスのオブジェクトをパラメータとして受け取るパラメータ化されたコンストラクタです。既存のオブジェクトの値 (パラメーターとして渡される) を、コンストラクターによってインスタンス化された新しく作成されたオブジェクトにコピーします。あるオブジェクトのデータを別のオブジェクトにコピーすると言えます。

例:

コード:

using System;
public class CopyConstructor
{
public int num;
public CopyConstructor(int num)
{
this.num = num;
}
//copy constructor
public CopyConstructor(CopyConstructor obj)
{
num = obj.num;
}
}
public class Demo
{
public static void Main()
{
CopyConstructor obj1 = new CopyConstructor(50);
//passing same class's object as parameter
CopyConstructor obj2 = new CopyConstructor(obj1);
Console.WriteLine("Original object:");
Console.WriteLine("obj1.num = "+obj1.num);
Console.WriteLine("\nCopied object:");
Console.WriteLine("obj2.num = "+obj2.num);
}
}
ログイン後にコピー

出力:

C# のコンストラクター

4.静的コンストラクター

  • コンストラクター名の前にキーワードを付けることで定義できます。クラスに静的変数が含まれる場合、(明示的に定義されていない場合は) コンパイラーによって暗黙的に定義されます。
  • これはクラス内で実行される最初のブロックであり、自動的に呼び出されます。クラスインスタンスの数に関係なく、一度だけ実行されます。これはパラメータなしであり、アクセス修飾子を受け入れません。

例:

コード:

using System;
public class StaticConstructor
{
//static constructor
static StaticConstructor()
{
Console.WriteLine("Static constructor executed");
}
public static void Display()
{
Console.WriteLine("\nDisplay method executed");
}
}
public class Demo
{
public static void Main()
{
StaticConstructor.Display();
}
}
ログイン後にコピー

出力:

C# のコンストラクター

5. Private Constructor

A constructor created with a private specifier is called a private constructor. We cannot create an instance of the class if it contains only a private constructor, and it does not allow other classes to derive from this class. Used in class that contains only static members.

Example:

Code:

using System;
public class PrivateConstructor
{
public static int num = 100;
//private constructor
private PrivateConstructor()
{
}
}
public class Demo
{
public static void Main()
{
//PrivateConstructor obj = new PrivateConstructor();    //Error
Console.WriteLine("num = "+PrivateConstructor.num);
}
}
ログイン後にコピー

Output:

C# のコンストラクター

Conclusion

If we define any type of constructor in a class, then there will not be any implicit constructor in the class provided by the compiler. Like methods, parameterized constructors can also be overloaded with different numbers of parameters. Constructors defined implicitly by the compiler are always public.

Recommended Article

This is a guide to Constructor in C#. Here we discuss the types of Constructor in C# and its Work along with Code Implementation and Output. You can also go through our other suggested articles to learn more –

  1. Constructor in JavaScript
  2. Constructor in C++
  3. Copy Constructor in C#
  4. Static Constructor in C#

以上がC# のコンストラクターの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

C# を使用した Active Directory C# を使用した Active Directory Sep 03, 2024 pm 03:33 PM

C# を使用した Active Directory のガイド。ここでは、Active Directory の概要と、C# での動作方法について、構文と例とともに説明します。

C# の乱数ジェネレーター C# の乱数ジェネレーター Sep 03, 2024 pm 03:34 PM

C# の乱数ジェネレーターのガイド。ここでは、乱数ジェネレーターの仕組み、擬似乱数の概念、安全な数値について説明します。

C# データ グリッド ビュー C# データ グリッド ビュー Sep 03, 2024 pm 03:32 PM

C# データ グリッド ビューのガイド。ここでは、SQL データベースまたは Excel ファイルからデータ グリッド ビューをロードおよびエクスポートする方法の例について説明します。

C# の階乗 C# の階乗 Sep 03, 2024 pm 03:34 PM

C# の Factorial のガイド。ここでは、C# での階乗の概要について、さまざまな例とコード実装とともに説明します。

マルチスレッドと非同期C#の違い マルチスレッドと非同期C#の違い Apr 03, 2025 pm 02:57 PM

マルチスレッドと非同期の違いは、マルチスレッドが複数のスレッドを同時に実行し、現在のスレッドをブロックせずに非同期に操作を実行することです。マルチスレッドは計算集約型タスクに使用されますが、非同期はユーザーインタラクションに使用されます。マルチスレッドの利点は、コンピューティングのパフォーマンスを改善することですが、非同期の利点はUIスレッドをブロックしないことです。マルチスレッドまたは非同期を選択することは、タスクの性質に依存します。計算集約型タスクマルチスレッド、外部リソースと相互作用し、UIの応答性を非同期に使用する必要があるタスクを使用します。

C# のパターン C# のパターン Sep 03, 2024 pm 03:33 PM

C# のパターンのガイド。ここでは、C# のパターンの概要と上位 3 種類について、その例とコード実装とともに説明します。

C# の素数 C# の素数 Sep 03, 2024 pm 03:35 PM

C# の素数ガイド。ここでは、C# における素数の導入と例を、コードの実装とともに説明します。

XMLの形式を変更する方法 XMLの形式を変更する方法 Apr 03, 2025 am 08:42 AM

XML形式を変更する方法はいくつかあります。Atepadなどのテキストエディターを使用して手動で編集する。 XmlBeautifierなどのオンラインまたはデスクトップXMLフォーマットツールを使用して自動的にフォーマットします。 XSLTなどのXML変換ツールを使用して変換ルールを定義します。または、Pythonなどのプログラミング言語を使用して解析および操作します。元のファイルを変更してバックアップするときは注意してください。

See all articles