SUNWEN チュートリアル - C# 上級 (6)
ここで私が話したいのは、C# でのバージョン処理です。実際、これはどのソフトウェアでも考慮する必要がある問題です (私が書いたものを除く)。そのため、バージョン処理は非常に重要です。 Java はこの問題をうまく処理しており、個人的には C# は JAVA の処理方法から学んでおり、良い仕事をしていると思います
C# では、メソッドを宣言するときに virtual キーワードを使用すると、派生クラスの場合、親クラスで virtual キーワードを使用するが、その派生クラスで override または new キーワードを使用しない場合、および を直接参照する場合は、override または new キーワードを使用して非推奨にするか無視できます。同じ名前のメソッドを使用した場合、コンパイラはエラーを報告し、派生クラスのメソッドを無視する新しいモードで実行します。次の例は理解に役立ちます:
000: // Versioningversioning .cs
001: public class MyBase
002: {
003: パブリック仮想文字列 Meth1()
004: {
005: return "MyBase-Meth1";
006: }
007: パブリック仮想文字列 Meth2()
008 : {
009: return "MyBase" -Meth2";
010: }
011: パブリック仮想文字列 Meth3()
012: {
013: return "MyBase-Meth3";
014: }
015: }
016:
017: クラス MyDerived : MyBase
018: {
019: public override string Meth1()
020: {
021: return "MyDerived-Meth1";
022: }
023: public new string Meth2()
024: {
025: return "MyDerived- Meth2";
026: }
027: public string Meth3() // システムはここで警告を出し、メソッド Meth3() は非表示になります
028:
029:
030 : {
031: return "MyDerived- Meth3";
032: }
033:
034: public static void Main()
035: {
036: MyDerived mD = new MyDerived();
037: MyBase mB = ( MyBase) mD;
038:
039 : System.Console.WriteLine(mB.Meth1());
040: System.Console.WriteLine(mB.Meth2());
041: System.Console.WriteLine(mB.Meth3());
042: }
043: }
出力:
MyDerived-Meth1
MyBase-Meth2
MyBase-Meth3
最後の 2 つの新しいキーワードの出力が親クラスにあることが明確にわかります。メソッドの出力なので、 new キーワードの機能は、以前のバージョンにこのメソッドが存在する場合、現在のメソッドの内容の代わりに以前のメソッドが使用されるということです。その機能は、存在する場合には逆の効果を持ちます。は親クラスにそのようなメソッドがあるので、今書いたメソッドの内容を使用し、前のメソッドを削除します。 ただし、ここで new を使用するのはあまり良くないようです。これは誤解を招きます (ああ、Gaidi はそうする予定です)もう一度戦ってください) Me!&*%$#@)。
037 行を削除し、039-041 のすべての mB を mD に変更すると、出力は次のようになります:
MyDerived-Meth1
MyDerived-Meth2
MyDerived- Meth3
これはどういう意味ですか? オーバーライドと新しいキーワードは、派生クラスのオブジェクトが親クラスによって再形成された場合にのみ有効になるという意味です。このメカニズム、いわゆる「実践が C# をテストするための唯一の基準」です。笑
C# では、次のように、派生クラスにメソッドを追加したり、親クラスのメソッドをオーバーライドしたりできます。以下は非常に単純です:
class Base {}
class Derived: Base
{
public void F() {}
}
および:
class Base
{
public void F() {}
}
class Derived : Base
{
public void F() {}
}
上記は SUNWEN チュートリアル - C# 上級 (6) の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) を参照してください。 )!

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











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

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

C# StringReader のガイド。ここでは、C# StringReader の概要とその動作について、さまざまな例やコードとともに説明します。

C# StringWriter のガイド。ここでは、C# StringWriter クラスの概要とその動作について、さまざまな例やコードとともに説明します。
