Tôi muốn có chức năng in chung ... PrintGeneric (T) ... trong trường hợp sau, tôi đang thiếu gì?C#: Truyền đối tượng chung
Như mọi khi giúp đỡ của bạn/cái nhìn sâu sắc được đánh giá cao ...
public interface ITest
{}
public class MyClass1 : ITest
{
public string myvar = "hello 1";
}
public class MyClass2 : ITest
{
public string myvar = "hello 2";
}
class DoSomethingClass
{
static void Main()
{
MyClass1 test1 = new MyClass1();
MyClass2 test2 = new MyClass2();
Console.WriteLine(test1.myvar);
Console.WriteLine(test2.myvar);
Console.WriteLine(test1.GetType());
PrintGeneric(test1);
PrintGeneric<test2.GetType()>(test2);
}
// following doesn't compile
public void PrintGeneric<T>(T test)
{
Console.WriteLine("Generic : " + test.myvar);
}
}
'var' không thể là một tên biến vì nó là một từ khóa. Bạn có thể hiển thị mã thực của bạn không. –
@AshBurlaczenko Không chính xác. 'var' là một từ khóa theo ngữ cảnh được thêm vào trong C# 3.0. Bạn có thể sử dụng nó làm tên định danh. Tương tự, bạn có thể sử dụng 'yield',' select', 'from', vv làm tên định danh trong hầu hết các ngữ cảnh. –
thực sự "var" đã hoạt động mà không cần sử dụng Console.WriteLine ... nhưng đó là điều xấu của tôi khi sử dụng từ khóa làm tên định danh ... – user1229895