問題タブ [readonly]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C# で読み取り専用 (不変) オブジェクト インターフェイスを実装する
私の目標は、ほとんどのシナリオでオブジェクトが完全なインターフェイスのサブセットである「読み取り専用インターフェイス」を介して使用されるようにすることです。
const
たとえば、C++ を使用している場合は、オブジェクトを返すだけです。- C# では、インターフェイスでこれを実現できれば、読み取り専用のインターフェイスを実装して、どこでも使用できます。ただし、インターフェイスでは許可されていない演算子のオーバーロードが必要です。そのため、抽象基本クラスを使用する必要があります。
- しかし、抽象基本クラスを定義すると、派生型のアクセシビリティを変更することはできません。
では、C# で目標を達成するにはどうすればよいでしょうか。
c# - 開く前にファイルが既に使用されているかどうかを確認する (ネットワーク ドライブ、C#)
(ローカル ネットワーク ドライブ上の) ファイルが既に使用されているかどうかを、.Net で開く前に確認する方法はありますか?
c# - readonly 修飾子と volatile 修飾子が相互に排他的であるのはなぜですか?
readonly
参照は変更されず、そのプロパティのみであるため、参照型変数があります。修飾子を追加しようとするvolatile
と、コンパイルされたものから、両方の修飾子を同じ変数に適用できないことが警告されました。しかし、プロパティを読み取るときにキャッシュの問題が発生したくないため、揮発性である必要があると思います。何か不足していますか?それともコンパイラが間違っていますか?
更新以下のコメントの 1 つでマーティンが述べたように: 参照型オブジェクトの場合、readonly 修飾子と volatile 修飾子の両方が参照にのみ適用され、オブジェクトのプロパティには適用されません。それは私が見逃していたものなので、コンパイラは正しいです。
c# - C#のプライベート const 変数とプライベート readonly 変数に違いはありますか?
変数を持つことと C# で変数を持つことの間に違いはありprivate const
ますか(コンパイル時の式を割り当てる必要があることを除いて)?private static readonly
const
どちらもプライベートなので、他のライブラリとのリンクはありません。それで何か違いはありますか?たとえば、パフォーマンスの違いを生むことはできますか? インターンストリング?似たようなものはありますか?
c# - 読み取り専用プロパティのメソッド呼び出しへのアクセスを制限する
次のようなプライベート フィールドを効果的に公開する読み取り専用プロパティを定義するクラスがあります。
現在、消費者が私のプロパティを直接管理することは不可能であるため、aContainer.MyList = new List(); のようなコードを作成します。コンパイル時エラーを生成します。ただし、消費者は取得した参照に対してあらゆる種類のメソッドを完全に自由に呼び出すことができるため、これは完全に有効なコードです。
これは、読み取り専用の概念全体を無効にします。
実際の読み取り専用の参照プロパティを持つことを可能にする適切な回避策はありますか?
PSリストのコピーを返すことはできません。なぜなら、ユーザーは必要なすべての変更を行ったと思うからですが、残念ながら... それらは消えてしまいます。
c# - C# が読み取り専用のローカル変数を許可しないのはなぜですか?
これについて同僚と友好的な議論をしています。私たちはこれについていくつかの考えを持っていますが、SOの群衆はこれについてどう思っているのでしょうか?
windows - Perlのファイルから読み取り専用フラグをクリアするにはどうすればよいですか?
Windowsで実行されているPerlプログラムのファイルの読み取り専用フラグをクリアする必要があります。
私system("attrib -r $filename")
はうまくいくことを知っていますが、Perlにそれを行うための組み込みオプションがないかどうか疑問に思いました。chmod 777, $filename
動作しないようです。
ありがとう、
スプリンター
.net - ファイルの読み取り専用属性の変更
ファイルの読み取り専用フラグを変更できないようです。VistaとXPで同じ結果を試したので、UAC関連の問題ではないと思います。
しかし、私がしたことは何もうまくいかないようです。以下のサンプルを参照してください。誰かが私が間違っていることを教えてもらえますか?