or que o compilador c # não verifica a "estática" do método nos sites de chamada com um argumento dinâmic
Por que o compilador C # não me diz que esse pedaço de código é inválid
class Program
{
static void Main(string[] args)
{
dynamic d = 1;
MyMethod(d);
}
public void MyMethod(int i)
{
Console.WriteLine("int");
}
}
A chamada paraMyMethod
falha no tempo de execução porque estou tentando chamar um método não estático de um método estático. Isso é muito razoável, mas por que o compilador não considera isso um erro no momento da compilação?
O seguinte não será compilado
class Program
{
static void Main(string[] args)
{
dynamic d = 1;
MyMethod(d);
}
}
, apesar do envio dinâmico, o compilador verifica seMyMethod
existe. Por que não verifica a "estática"?