2017-10-02 12 views
1

私はメンバーがいます。このメンバはコンストラクタによってのみ割り当てられ、なぜ私はそれが読み込み専用にできると思ったのですか? この非常にクラスには、いくつかのコンストラクタがあります。"コンストラクタの権利"を持つコンストラクタからメソッドを呼び出します。

このメンバを一度割り当てることで、単一障害点を作成する方法はありますか。

まず、インラインメソッドで動作すると思っていました。 私が見つけた唯一の方法はである:

[MethodImpl(MethodImplOptions.AggressiveInlining)] 

しかし、それは動作しません。

「コンストラクタの権利」メソッドを提供することは可能ですか、これを行うことはできませんか?

+1

That'sをチェーンにあると思います。 – HimBromBeere

+2

コンストラクタチェーンを使用しますか? –

答えて

4

私はここにあなたの最善の策は、あなたのコンストラクタをオーバーロードし、その後readonly`が何をするのか `彼らに

readonly int myReadonly; 

public test(int a, int b) 
    :this (a) 
{ 
    myReadonly = b; 
} 

private test(int a) 
{ 
    //other work 
} 
+0

愚かな質問:(int a)が呼び出される前にこれが実行されるtest(int a、int b)を呼び出すと、正しいですか? –

+0

@KenanTabinas質問は**愚かではない**です。そして、それについては、ここで何度か尋ねられています(例えば、[here](https://stackoverflow.com/q/4609774/982149))。 – Fildor

+0

@Fildorこれは正解ではありません。私は「本当の質問か」と尋ねました。そのような質問に対する答えはブール値です。この例では、正解は「いいえ」です。とにかくありがとう。 –

関連する問題