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 关注
- 106 浏览
添加回答
举报