Aşağıdaki kodun Foo()
bir örnek yöntemini çağıran statik bir yöntemi vardır Bar()
:
public sealed class Example
{
int count;
public static void Foo( dynamic x )
{
Bar(x);
}
void Bar( dynamic x )
{
count++;
}
}
Hatasız derler * ancak çalışma zamanında bir çalışma zamanı bağlayıcı istisnası oluşturur. Dinamik parametrenin bu yöntemlere kaldırılması, beklendiği gibi bir derleyici hatasına neden olur.
Öyleyse neden dinamik bir parametreye sahip olmak kodun derlenmesine izin veriyor? ReSharper bunu bir hata olarak da göstermiyor.
Visual Studio 2008'de Düzenleme 1: *
Düzenleme 2:sealed
bir alt sınıfın statik bir Bar(...)
yöntem içermesi olası olduğundan eklendi . Mühürlenmiş sürüm bile, çalışma zamanında örnek yöntemi dışındaki herhangi bir yöntemin çağrılabilmesi mümkün olmadığında derlenir.
dynamic
gerçekten ihtiyacınız olmadıkça neden kullanmamanız gerektiğinin başka bir örneğidir .