可能重复:
C#中是否有任何方法可以使用扩展方法覆盖类方法?
我的代码就像
public class TestA
{
public string ColA { get; set; }
public string ColB { get; set; }
public string ColC { get; set; }
public void MethodA()
{
MessageBox.Show("Original A1.");
}
}
static class ExtenstionTest
{
public static void MethodA(this TestA A1)
{
MessageBox.Show("Extended A1.");
}
}
Run Code Online (Sandbox Code Playgroud)
现在如果我把MethodA称为
TestA a = new TestA();
a.MethodA();
Run Code Online (Sandbox Code Playgroud)
它总是会调用Original方法.如何调用扩展方法.
是否可以定义一个默认数字格式,每当我将integer(或double等)转换为a String而不指定格式字符串时使用该格式?
C#示例:
int i = 123456;
string s = "Hello " + i;
// or alternatively with string.Format without format definition
string s = string.Format("Hello {0}", i);
Run Code Online (Sandbox Code Playgroud)
ASP.NET Razor示例:
<div>
Hello @i
</div>
Run Code Online (Sandbox Code Playgroud)
我认为所有这些代码行都隐式使用默认ToString()方法Int32.毫不奇怪,所有这些代码行都会产生"Hello 123456",但我想要"Hello 123,456".
那么我可以指定"N0"默认情况下应该使用它(至少是integer)吗?
我已经找到了问题Set Default DateTime Format c# - 它看起来不错,但它对数字没有帮助.
编辑:我知道我可以编写一个扩展方法,我可以在整个应用程序中使用,但这不是我正在寻找的.我想找到一个属性(也许某处隐藏在CultureInfo或NumberFormatInfo这是目前设定为)"G",并使用默认的Int32.ToString()实现.