为什么不能将不同类型的变量命名为相同?

Ctr*_*eat 0 c#

我知道下面的内容在C#的相同代码块中是非法的,但除了明显的(以不同的方式命名)之外,是否有任何可能的方法呢?

    string test;
    int test; 
Run Code Online (Sandbox Code Playgroud)

Car*_*ten 7

歧义

好的,我们假设这是有效的,你可以这样做

string test = "Hallo";
int test = 1;
Run Code Online (Sandbox Code Playgroud)

应该

test.ToString();
Run Code Online (Sandbox Code Playgroud)

导致"Hallo"或在"1"

如您所见,编译器在某些情况下无法知道您正在引用的对象.我希望这回答了你的问题.