検索

クラスは、C# の基本的な型の 1 つです。クラスは、問題領域に関連するオブジェクトの設計図と考えることができます。これは作成するオブジェクトのテンプレートであり、このクラスから作成されるオブジェクトのセットによって共有される構造と動作を定義します。簡単に言えば、クラスはクッキーカッターであり、オブジェクトはクッキーそのものです。

クラスは、オブジェクト指向プログラミングにおける重要な概念であるカプセル化もサポートしています。これは、データとそのデータを処理する操作を 1 か所で結合し、そのオブジェクトのユーザーにシンプルな API を提供することを意味します。クラスを使用すると、データをカプセル化し、無関係な詳細を他のクラスから隠すことができます。

class キーワードに続いてクラス名を使用して、クラスを作成できます。

// User.cs
public class User{
   private string name;
   private int salary;
   public void Promote(){
      salary += 1000;
   }
}

上の例では、User はユーザーを表すクラスです。このクラスは、namesalary という 2 つのデータをカプセル化します。これらはクラス フィールドと呼ばれ、ユーザーの名前と給与が含まれます。また、ユーザーの給与を増やすために使用される Promote() というメソッドもあります。

各クラスには、そのクラスが他のクラスから見えるかどうかを制御するアクセス修飾子が関連付けられています。以下は、アクセス修飾子に指定できる 5 つの値です。

#アクセス修飾子説明パブリック 制限なしアクセス 保護された 派生クラスへの制限されたアクセス プログラムへの内部 アセンブリへの制限されたアクセス#保護された内部#プライベート外部アクセスなしクラスのインスタンスを作成するには、new
th>
アセンブリまたは派生クラスへの制限されたアクセス
キーワードを使用できます。

new 演算子は、オブジェクトのデータに必要なバイト数を計算し、オブジェクトにメモリを割り当てます。次に、新しく作成されたオブジェクトへのポインター (参照とも呼ばれます) を返します。

var alice = new User();
var bob = new User();
次に、この参照を等号の左側の変数に保存します。上の例では、アリスとボブは、新しく作成されたオブジェクトへの参照またはポインタを保存します。

C# では、クラスの命名規則は PascalCase に従います。つまり、StringBuilder、UserController など、複合語の各単語の最初の文字が大文字になります。ファイル内のクラス名と一致するクラスを作成する必要はありません。ただし、ほとんどの C# プロジェクトではこの規則が使用されます。 C# のクラスの概念を説明する

Constructor

上記の例では、User クラスのインスタンス (つまり、alice と bob) を作成するときに、最初の名前と給与を指定しませんでした。通常、新しく作成されたオブジェクトがそのジョブを実行するには何らかの情報が必要であり、クラスのデータを初期化するためにコンストラクターが使用されます。

コンストラクターを追加して、次のようにユーザーの名前と給与を指定できます。

public class User{
   private string name;
   private int salary;
   public User(string name, int salary){
      this.name = name;
      this.salary = salary;
   }
   public void Promote(){
      salary += 1000;
   }
}

コンストラクターを使用すると、新しいインスタンスの作成時にユーザーの名前と給与を渡すことができます。

var alice = new User("Alice", 50000);
var bob = new User("Bob", 45000);

クラス内には複数のコンストラクターが存在する場合があります。複数のコンストラクターがあると、さまざまな方法でクラスを初期化できます。たとえば、ユーザー名を取得してデフォルトの給与を割り当てるだけの別のコンストラクターを追加できます。

public User(string name){
   this.name = name;
   this.salary = 50000;
}

Example

サンプルのデモンストレーション

using System;
class Program{
   static void Main(){
      var alice = new User();
      alice.Print();

      var bob = new User();
      bob.Print();
      var chris = new User("Chris", 50000);
      chris.Print();
      var debs = new User("Debs", 45000);
      debs.Print();

      var scott = new User("Scott");
      scott.Print();
   }
}
public class User{
   private string name;
   private int salary;
   public User(){

   }
   public User(string name){
      this.name = name;
      this.salary = 50000;
   }
   public User(string name, int salary){
      this.name = name;
      this.salary = salary;
   }
   public void Promote(){
      salary += 1000;
   }
   public void Print(){
      Console.WriteLine($"{name}: {salary}");
   }
}

出力

: 0
: 0
Chris: 50000
Debs: 45000
Scott: 50000

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

声明
この記事はtutorialspointで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
次のレベルのCコンパイラを追加する方法次のレベルのCコンパイラを追加する方法Mar 03, 2025 pm 05:44 PM

この記事では、printf内の\ nエスケープシーケンスを使用してcで新しいライン文字を作成し、関数を置く方法について説明します。 機能を詳しく説明し、出力のラインブレークに使用することを示すコード例を提供します。

C言語のnullの代替案は何ですかC言語のnullの代替案は何ですかMar 03, 2025 pm 05:37 PM

この記事では、CのNull Poernter recerferenceの課題を調査します。問題は、問題はnullではなく、その誤用であると主張しています。 記事では、参照前のチェック、ポインターInitialiなど、非参照を防止するためのベストプラクティスの詳細

どの言語コンパイラが優れていますか?どの言語コンパイラが優れていますか?Mar 03, 2025 pm 05:39 PM

この記事は、Cコンパイラの選択に関する初心者を案内しています。 GCCは、使いやすさ、幅広い可用性、広範なリソースが初心者に最適であるため、最適であると主張しています。 ただし、GCC、Clang、MSVC、およびTCCも比較して、その違いを強調しています

nullは、C言語での最新のプログラミングではまだ重要ですか?nullは、C言語での最新のプログラミングではまだ重要ですか?Mar 03, 2025 pm 05:35 PM

この記事では、現代のCプログラミングにおけるNullの継続的な重要性を強調しています。 進歩にもかかわらず、Nullは明示的なポインター管理にとって重要なままであり、有効なメモリアドレスがないことをマークすることにより、セグメンテーションの障害を防ぎます。 最高のPRAC

C言語コンパイラのWebバージョンは何ですか?C言語コンパイラのWebバージョンは何ですか?Mar 03, 2025 pm 05:42 PM

この記事では、初心者向けのオンラインCコンパイラをレビューし、使いやすさとデバッグ機能に焦点を当てています。 OnlineGDBとRepl.itは、ユーザーフレンドリーなインターフェイスと役立つデバッグツールのために強調表示されます。 プログラムやコンパイルなどのその他のオプション

C言語コンパイラによるコードをコピーする方法C言語コンパイラによるコードをコピーする方法Mar 03, 2025 pm 05:43 PM

この記事では、C IDEでの効率的なコードコピーについて説明します。 コピーはコンパイラ機能ではなくIDE機能であり、IDE選択ツールの使用、コード折りたたみ、検索/交換、テンプラなど、効率を向上させるための詳細戦略であることを強調しています。

c言語オンラインプログラミングウェブサイトc言語コンパイラ公式ウェブサイトの要約c言語オンラインプログラミングウェブサイトc言語コンパイラ公式ウェブサイトの要約Mar 03, 2025 pm 05:41 PM

この記事では、オンラインCプログラミングプラットフォームを比較し、デバッグツール、IDE機能、標準コンプライアンス、メモリ/実行の制限などの機能の違いを強調しています。 「最良の」プラットフォームはユーザーのニーズに依存していると主張しています。

c言語コンパイラインストールチュートリアル(コンピューターバージョン)c言語コンパイラインストールチュートリアル(コンピューターバージョン)Mar 03, 2025 pm 05:41 PM

このチュートリアルは、Windows、MacOS、LinuxにCコンパイラをインストールすることでユーザーをガイドします。 人気のコンパイラ(MINGW、Visual Studio、XCode、GCC)のインストールを詳述し、環境可変構成を説明し、トラブルシューティング手順を提供します

See all articles

ホット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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SublimeText3 中国語版

SublimeText3 中国語版

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

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

メモ帳++7.3.1

メモ帳++7.3.1

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

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール