Xét đoạn mã sau đoạn mãđại biểu hiệp phương sai và Contavariance
namespace ConsoleApplication1
{
public delegate TResult Function<in T, out TResult>(T args);
class Program
{
static void Main(string[] args)
{
Program pg =new Program();
Function<Object, DerivedClass> fn1 = null;
Function<String, BaseClass> fn2 = null;
fn1 = new Function<object, DerivedClass>(pg.myCheckFuntion)
fn2=fn1;
fn2("");// calls myCheckFuntion(Object a)
pg.myCheckFuntion("Hello"); //calls myCheckFuntion(String a)
}
public DerivedClass myCheckFuntion(Object a)
{
return new DerivedClass();
}
public DerivedClass myCheckFuntion(String a)
{
return new DerivedClass();
}
}
tại sao gọi đại biểu và gọi phương thức gọi phương pháp khác nhau bình thường.
Không có gì để thêm. +1 –
Bạn không thể đánh bại Jon Skeet! – siride
Quá nhanh đối với tôi: ( – VMAtm