出于好奇,有没有办法写一个方法,例如像这样:
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#编译器在这种情况下可以生成第二个内部方法,那将是不错的。
那已经有点可能吗?到目前为止找不到任何东西。
答案 0 :(得分: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 ...
}
答案 1 :(得分:1)
我知道这是一个迟到的答案,但它可能对其他人有帮助。
您可以使用 AttributeTargets.Parameter (here is the msdn link)对您的属性类进行处理,这正是您所寻找的。 p>
示例属性:
[AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false)]
public class InternalAttribute : Attribute
{
// attribute code goes here
}
属性的用法:
public void Foo([Internal] type_of_parameter parameter_name)
{
//code
}