TECH I.S.

C# アクセス修飾子


アクセス修飾子

ここまでで、多くの例に登場するpublicキーワードについてはよくご存じでしょう。

{.language-csharp .techis-white}
<strong>public</strong>
string color;

publicキーワードはアクセス修飾子で、クラス、フィールド、メソッド、およびプロパティのアクセスレベル/可視性を設定するために使用されます。

C#には、次のアクセス修飾子があります。


修飾子 説明
public コードはすべてのクラスでアクセス可能です
private コードは同じクラス内でのみアクセス可能です
protected コードは、同じクラス内またはクラス内でアクセス可能です。 そのクラスから継承されます。詳しくはこちらの継承の章を参照して下さい。
internal コードは、それ自体のアセンブリ内でのみアクセスできますが、別のアセンブリからはアクセスできません。 これについては、後の章で詳しく説明します

次の2つの組み合わせもあります。protected internalprivate protected

今のところ、publicprivate修飾子に焦点を当てましょう。


プライベート修飾子

privateアクセス修飾子でフィールドを宣言すると、同じクラス内でのみアクセスできます。

{.language-csharp .techis-white}
class Car

出力は次のようになります。

Mustang

クラスの外にアクセスしようとすると、エラーが発生します。

{.language-csharp .techis-white .techis-border-red}
class Car
{
private string model = "Mustang";
}
class Program
{
static void Main(string[] args)
{
Car myObj = new Car();
Console.WriteLine(myObj.model);
}
}

出力は次のようになります。

'Car.model' is inaccessible due to its protection level
The field 'Car.model' is assigned but its value is never used


公開修飾子

publicアクセス修飾子でフィールドを宣言すると、すべてのクラスからアクセスできます。

{.language-csharp .techis-white}
class Car
{
public string model = "Mustang";
}
class Program
{
static void Main(string[] args)
{
Car myObj = new Car();
Console.WriteLine(myObj.model);
}
}

出力は次のようになります。

Mustang


これは、「機密」データがユーザーから確実に隠されるプロセスです。これは、フィールドをプライベートとして宣言することによって行われます。

アクセス修飾子を使用する理由

クラスメンバーの可視性(個々のクラスおよびクラスメンバーのセキュリティレベル)を制御します。

"カプセル化"を実現するために - これは、「機密」データがユーザーから隠されていることを確認するプロセスです。これは、フィールドをprivateとして宣言することによって行われます。これについては、次の章で詳しく説明します。

注:アクセス修飾子を指定しない場合、デフォルトではクラスのすべてのメンバーはprivateになります。

{.language-csharp .techis-white}
class Car
{
string model; // private
string year; // private
}

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

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

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

スクールの詳細