有沒有辦法引用繼承抽象類的類(即Type
)?引用抽象類中的inherting類
class abstract Monster
{
string Weakness { get; }
string Vice { get; }
Type WhatIAm
{
get { /* somehow return the Vampire type here? */ }
}
}
class Vampire : Monster
{
string Weakness { get { return "sunlight"; }
string Vice { get { return "drinks blood"; } }
}
//somewhere else in code...
Vampire dracula = new Vampire();
Type t = dracula.WhatIAm; // t = Vampire
對於那些誰是好奇...我在做什麼:我想知道什麼時候我的網站最後公佈。 .GetExecutingAssembly
完美工作,直到我把我的解決方案的DLL。之後,BuildDate
始終是實用程序dll的最後生成日期,而不是網站的dll。
namespace Web.BaseObjects
{
public abstract class Global : HttpApplication
{
/// <summary>
/// Gets the last build date of the website
/// </summary>
/// <remarks>This is the last write time of the website</remarks>
/// <returns></returns>
public DateTime BuildDate
{
get
{
// OLD (was also static)
//return File.GetLastWriteTime(
// System.Reflection.Assembly.GetExecutingAssembly.Location);
return File.GetLastWriteTime(
System.Reflection.Assembly.GetAssembly(this.GetType()).Location);
}
}
}
}
或者,更好的,只是用gettype()。 – 2010-10-29 20:20:25
還要注意,GetType()將獲得您正在使用的任何類型的實際類型,即使您已將其轉換爲其他類型(當然也適用於參考類型)。所以如果你有像IMonster這樣的接口,你可以使用IMonster.GetType()來查看它的實際內容,同樣也適用於你的Monster抽象基礎。 – CodexArcanum 2010-10-29 20:25:43