相关疑难解决方法(0)

如何调用与现有方法同名的扩展方法?

可能重复:
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方法.如何调用扩展方法.

c# extension-methods

23
推荐指数
3
解决办法
7514
查看次数

ToString的默认数字格式

是否可以定义一个默认数字格式,每当我将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# - 它看起来不错,但它对数字没有帮助.


编辑:我知道我可以编写一个扩展方法,我可以在整个应用程序中使用,但这不是我正在寻找的.我想找到一个属性(也许某处隐藏在CultureInfoNumberFormatInfo这是目前设定为)"G",并使用默认的Int32.ToString()实现.

.net c# cultureinfo number-formatting

7
推荐指数
1
解决办法
1976
查看次数