2

好奇心から、たとえば次のようなメソッドを作成する方法はありますか?

public static MyType Parse(string stringRepresentation, [Internal] bool throwException = true)
{
// parsing logic here that conditionally throws an exception or returns null ...
}

public static MyType TryParse(string stringRepresentation)
{
return this.Parse(stringRepresentation, true);
}

コードの冗長性を内部的に削減したいのですが、たとえば(Try)Parse()のBCLメソッドシグネチャに準拠したままですが、この場合、c#コンパイラが2番目の内部メソッドを生成できれば便利です。

それはすでにどういうわけか可能ですか?今のところ何も見つかりませんでした。

4

2 に答える 2

3

私はあなたができることを知りませんが、これはあなたに同じ結果を与えるのではないでしょうか?

public MyType Parse(string stringRepresentation)
{
    return this.Parse(stringRepresentation, true);
}

internal MyType Parse(string stringRepresentation, bool throwException = true)
{
    // parsing logic here that conditionally throws an exception or returns null ...
}
于 2011-01-03T13:00:47.003 に答える
1

これは少し遅い答えだと思いますが、他の誰かの助けになるかもしれません。

まさにあなたが探しているものであるAttributeTargets.Parameterここにmsdnリンクです)を使用して属性クラスをデコアすることができます。

サンプル属性:

[AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false)]
public class InternalAttribute : Attribute
{
    // attribute code goes here
}

属性の使用法:

public void Foo([Internal] type_of_parameter parameter_name)
{
      //code
}
于 2012-07-12T12:24:14.203 に答える