HOWTO · Csharp
C# でクラスを拡張する
このチュートリアルでは、C# プログラミング言語を使用してクラスを拡張する方法について説明します。
このチュートリアルでは、C# プログラミング言語を使用してクラスを拡張する方法について説明します。
継承を使用して C# でクラスを拡張する
オブジェクト指向プログラミング (OOP) を使用する場合、継承は階層レベルに関連付けられます。 派生 クラスをその ベース クラスにキャストすることは可能ですが、その逆はできません。
基本 クラスから 派生 クラスにキャストすることはできません。 次の例を見て理解を深めてください。
次の例では、プロパティを一度に 1つずつ新しいオブジェクトに追加し、新しいオブジェクトを使用して前のオブジェクトから 1つのプロパティを拡張します。
-
まず、次のライブラリをインポートします。
using System; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; -
FirstnameプロパティとLastnameプロパティを持つPersonクラスを作成します。public class Person { public string Firstname { get; set; } public string Lastname { get; set; } public Person(string fname, string lname) { Firstname = fname; Lastname = lname; } } -
PersonからStudentを構築するために、コンストラクターのオーバーロードが使用されるようになりました。public class Student : Person { public Student(Person person, string code) : base(person.Firstname, person.Lastname) { this.code = code; } public Student(Person person) : base(person.Firstname, person.Lastname) {} public string code { get; set; } } -
Main()メソッドでは、Personオブジェクトを作成し、以下のようにデータを入力します。Person person = new Person("Muhammad Zeeshan", "Khan"); -
次に、
s1とs2という名前の 2つのStudentオブジェクトを作成し、personオブジェクトとcodeをパラメーターとして渡します。Student s1 = new Student(person, "3229"); Student s2 = new Student(person, "3227"); -
最後に、
Personプロパティを持つStudentオブジェクトを出力します。Console.WriteLine(s1.code); Console.WriteLine(s2.code); -
完全なソース コード。
using System; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; public class Person { public string Firstname { get; set; } public string Lastname { get; set; } public Person(string fname, string lname) { Firstname = fname; Lastname = lname; } } public class Student : Person { public Student(Person person, string code) : base(person.Firstname, person.Lastname) { this.code = code; } public Student(Person person) : base(person.Firstname, person.Lastname) {} public string code { get; set; } } static class Program { static void Main(string[] args) { Person person = new Person("Muhammad Zeeshan", "Khan"); Student s1 = new Student(person, "3229"); Student s2 = new Student(person, "3227"); Console.WriteLine(s1.code); Console.WriteLine(s2.code); } }出力:
3229 3227