[解決済み] C#でJavaのfinalに相当するものは何ですか?
2022-03-03 23:05:09
質問
Java の
final
をC#で使うことはできますか?
どのように解決するのですか?
その
final
キーワードは、Javaではいくつかの使い方があります。これは
sealed
と
readonly
のキーワードは、使用される文脈に応じて、C#で使用されます。
クラス
サブクラス化(定義されたクラスからの継承)を防ぐため。
ジャワ
public final class MyFinalClass {...}
C#
public sealed class MyFinalClass {...}
メソッド
をオーバーライドしないようにする。
virtual
メソッドを使用します。
ジャワ
public class MyClass
{
public final void myFinalMethod() {...}
}
C#
public class MyClass : MyBaseClass
{
public sealed override void MyFinalMethod() {...}
}
Joachim Sauerが指摘しているように、ここでの2つの言語の顕著な違いは、Javaはデフォルトですべての非静的メソッドを
virtual
としてマークするのに対し、C#では
sealed
. したがって
sealed
と明示的にマークされたメソッドのオーバーライドを停止したい場合、C#のキーワードを使用します。
virtual
をベースクラスで使用します。
変数
変数の代入を一度だけ許可すること。
ジャワ
public final double pi = 3.14; // essentially a constant
C#
public readonly double pi = 3.14; // essentially a constant
余談ですが、このときの効果は
readonly
キーワードとは異なります。
const
キーワードは
readonly
式が評価されるのは
実行時
よりも
コンパイル時
そのため、任意の表現が可能である。
関連
-
[解決済み】C#でクエスチョンマークを2つ並べるとどんな意味になるのか?
-
[解決済み】インデックスが範囲外でした。コレクションパラメータname:indexのサイズより小さく、非負でなければなりません。
-
VSでscanfエラーを恒久的に解決するには、ソースファイルを作成し、自動的に#define _CRT_SECURE_NO_WARNINGS 1を追加してください。
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] C#の正しいバージョン番号を教えてください。
-
[解決済み] C#のオートプロパティに初期値を与える最良の方法は何ですか?
-
[解決済み] C#の[Flags]Enum属性の意味とは?
-
[解決済み] C#のconstとreadonlyの違いは何ですか?
-
[解決済み] C#では、public、private、protected、アクセス修飾子がないことの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】統合マネージドパイプラインモードで適用されないASP.NETの設定が検出された
-
[解決済み】「入力文字列が正しい形式ではありませんでした」エラーの解決方法は?[重複しています]。
-
[解決済み】5.7.57 SMTP - MAIL FROMエラー時に匿名メールを送信するためにクライアントが認証されない
-
[解決済み】インデックスが範囲外でした。コレクションパラメータname:indexのサイズより小さく、非負でなければなりません。
-
[解決済み】IntPtrとは一体何なのか?
-
[解決済み] 関数を終了するには?
-
[解決済み】「namespace」なのに「type」のように使われる。
-
[解決済み】名前 'ViewBag' が現在のコンテキストに存在しない - Visual Studio 2015
-
[解決済み] C# シールドとJavaファイナルの比較
-
[解決済み] Javaの "final "キーワードはどのように機能するのでしょうか?(オブジェクトを修正することは可能です。)