2015-05-21 58 views
0

剛開始泛型,想知道如何在類方法中訪問類的T?讓我們採取一些代碼來更好地解釋我想要做的事情:C#在自己的方法中訪問泛型類的T

public class RegisterResult<T> where T : IRegisterable 
{ 
    public bool Success { get; set; } 
    public string Entity { get; set; } 
    public string ErrorMessage { get; set; } 

    //Want to avoid this, by using generics: 
    /*public static RegisterResult UserSuccess = new RegisterResult(true, "User", ""); 
    public static RegisterResult DeviceSuccess = new RegisterResult(true, "Device", ""); 
    public static RegisterResult DeviceDataSucces = new RegisterResult(true, "DeviceData", "");*/ 

    public RegisterResult(bool success, string errmsg) 
    { 
     this.Success = success; 
     //The following line does not work, so how can I reach that? 
     this.Entity = T.GetType().Name; 
     this.ErrorMessage = errmsg; 
    } 

} 

非常感謝您提供所有幫助和意義的答案!

UPDATE:ERRORMESSAGE從Visual Studio

「T」 是 「類型參數」,並在給定的上下文無效

+0

當你說那行不工作,你在那條線上看到了什麼確切的錯誤信息和/或例外情況? –

+1

誰投了這個問題?這似乎很適合我。 OP說他剛開始使用泛型,所以這是一個合理的問題。 – Enigmativity

+0

對不起@JohnHodge,我添加了錯誤信息 –

回答

7

就算這樣簡單:

this.Entity = typeof(T).Name;