如果我们声明一个变量和一个具有相同名称的函数,则它接受重新声明。但是,当我们在一个块内执行相同的操作时,它会显示重新声明错误。
码:
var x;
function x() {}; // no error.Run Code Online (Sandbox Code Playgroud)
但是在这种情况下,我得到了错误。
{
var inside; // re-declaration error.
function inside() {};
}Run Code Online (Sandbox Code Playgroud)
预期结果应该没有错误。
我想覆盖一个方法(method(int x)):
public class A
{
public virtual void method(int x)
{
Console.WriteLine("base");
}
}
public class B : A
{
public override void method(int x)
{
Console.WriteLine("overridden");
}
public void method(Double x)
{
Console.WriteLine("overloaded");
}
}
Run Code Online (Sandbox Code Playgroud)
而我这样称呼它:
public static class Program
{
public static void Main()
{
B obj = new B();
obj.method(1);
}
}
Run Code Online (Sandbox Code Playgroud)
出于某种原因,打印"重载"并且不像我期望的那样"覆盖".如果我更改class B为以下,Main方法现在打印"覆盖":
public class B
{
public void method(int x)
{
Console.WriteLine("overridden");
}
public void method(Double x)
{
Console.WriteLine("overloaded");
} …Run Code Online (Sandbox Code Playgroud)