2011-03-15 10 views
3

あるクラスから別のクラスに値を渡す必要があり、何が最善の方法であるか尋ねました。どう思いますか?c#関数コーディングガイドライン

A)

public string getValue(){ 
    string returnValue; 
    ClassA myClass = new ClassA(); 
    returnValue= myClass.getValue(); 
    return returnValue; 
} 

B)

public string getValue(){ 
    return new ClassA().getValue(); 
} 

悪いプログラミングスタイルのようなBに問題がある場合、私は知らない...

ありがとうございました!

+0

あなたはおそらく ')新にClassAを(返す意味のgetValue。 (); ' –

答えて

5

コンパイラは、とにかくリリースモードで "a"を "b"に減らします。

中間変数を追加する場合は、その場所でブレークポイントを使用してデバッグしたい場合があります。しかし、IMOの "a"はほとんど追加されません。私は "b"を使うだろう。

もちろん、new ClassA()インスタンスはほとんど追加されず、代わりに静的メソッドを提供する必要があります。その時点でというメソッドはほとんど提供されておらず、呼び出し元はスタティックClassA.GetValue()を呼び出す必要があります。

1

私はClassAが何か(計算、DB呼び出しなど)をしていると仮定しており、その結果が必要です。一つの方法は、これに似た、静的クラスとしてにClassAを設計するために、次のようになります。

public static ClassA{ 
    public static string GetValue(){ 
    //magic happens here 
} 
} 

他のクラスは、単にメソッドを呼び出すことができます。

var myReturnValue = ClassA.GetValue();