ホームページ バックエンド開発 C#.Net チュートリアル SUNWEN チュートリアル - C# 上級 (6)

SUNWEN チュートリアル - C# 上級 (6)

Dec 19, 2016 am 10:21 AM

ここで私が話したいのは、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) を参照してください。 )!


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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:24 PM

C# のアクセス修飾子のガイド。 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:23 PM

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

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

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

C# シリアル化 C# シリアル化 Sep 03, 2024 pm 03:30 PM

C# シリアル化のガイド。ここでは、C# シリアル化オブジェクトの導入、手順、作業、例についてそれぞれ説明します。

C# 文字列ライター C# 文字列ライター Sep 03, 2024 pm 03:23 PM

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

See all articles