Да, вы можете сделать это абсолютно. В целях разрешения статической перегрузки он рассматривается как параметр object
(и вызывается статически). То, что вы делаете в методе, будет динамичным. Например:
using System;
class Program
{
static void Foo(dynamic duck)
{
duck.Quack(); // Called dynamically
}
static void Foo(Guid ignored)
{
}
static void Main()
{
// Calls Foo(dynamic) statically
Foo("hello");
}
}
Природа "динамический как объект" означает, что вы не можете иметь одну перегрузку только с параметром object
и одну с параметром dynamic
.