2016-06-27 1 views
3

プロパティを1つのタイプとして設定でき、一度変更することはできませんが、返す間にintを設定するpropertyまたはproperty-like objectを作成する方法があります?タイプを設定して別のタイプを返すプロパティ

私は常にintのような変数を作成していますが、後でstringとして使用され、intとして一度も使用されることはありません。その場合、私はいつもそれがただ一つのタイプではないことを考慮して、たくさんの変換を行わなければならないでしょう。あなたが唯一の文字列としてそれを必要と

+5

ありません'string'を返す' SetFoo(int) 'と' GetFoo'メソッドを持つことができます。それはかなり珍しいですが。 –

+1

(文字列)が必要なときに 'ToString()'を 'int'に使用しないのはなぜですか? –

+0

はintとして宣言し、文字列が必要になったら文字列 'variable.toString()'を使用します。 – Sherlock

答えて

1

たぶん何か

struct strint 
{ 
    private int i; // 0 by default 

    public static implicit operator strint(int value) { 
     return new strint { i = value }; 
    } 

    public static implicit operator string(strint value) { 
     return value.i.ToString(); 
    } 

    public static implicit operator int(strint value) { 
     return value.i; 
    } 
} 

のようなサンプルを使用して、それを解決することができます:

strint a = 1; 
a += 2;   // 3 
int i = a;  // 3 
string s = a; // "3" 
0

一度だけ(初期化中)整数文字列値と一緒に行くよう:

readonlyは、さらに、ユーザが唯一の使う初期時の値を設定できるようになります
int readonly _myProp; 
string MyProp { get { return _myProp.ToString(); } } 

MyClass(int theValue 
{ 
    this._myProp = theValue; 
} 

あなたのクラス。

+0

_myPropの値を変更したいのですが? – Sherlock

+0

OPは彼がただ一度それを設定し、それを決して変更しないと言いました。 – HimBromBeere

+0

私はreadonlyよりも定数が好き – Sherlock

1

あなたが唯一の文字列値への読み込みアクセスが必要な場合は、2つのプロパティ

public int Value { get; set; } 
public string ValueString { get { return Value.ToString(); } } 
関連する問題