2 回答

TA貢獻1828條經驗 獲得超6個贊
我不知道這是否會滿足您的需求,但您可以將類的當前實例發送Abstract到Strategy類構造函數,然后獲取真實類型的當前名稱。
或者,如果您只想發送類的名稱而不是整個實例,您也可以這樣做。
更新代碼
public abstract class Abstract
{
public void Execute()
{
IValidator validator = new CustomClassValidator(this.GetType().Name);
validator.Validate();
}
}
public interface IValidator
{
void Validate();
}
public class CustomClassValidator : IValidator
{
private string className;
public CustomClassValidator(string className)
{
this.className = className;
}
public void Validate()
{
// make some other validations and throw exceptions
Console.WriteLine(className);
}
}

TA貢獻1783條經驗 獲得超4個贊
public interface IStrategy
{
string GetChildClassName();
}
public class Strategy : IStrategy
{
public string GetChildClassName()
{
return this.GetType().Name;
}
}
- 2 回答
- 0 關注
- 134 瀏覽
添加回答
舉報