gpt4 book ai didi

c# - 抽象类中未实现的构造函数

转载 作者:行者123 更新时间:2023-11-30 14:25:51 24 4
gpt4 key购买 nike

我看到了 .NET 提供的几个abstract 基类,但我完全不知道它们的构造函数和虚方法的定义方式。例如,参见 System.ComponentModel.DataAnnotations.ValidationAttribute 基类:

public abstract class ValidationAttribute : Attribute
{
// Summary:
// Initializes a new instance of the System.ComponentModel.DataAnnotations.ValidationAttribute
// class.
protected ValidationAttribute();
...
protected virtual ValidationResult IsValid(object value, ValidationContext validationContext);
}

但我不能在自己的类里面这样做:

public abstract class MyClass
{
protected MyClass();
}

MyClass.MyClass() must declare a body because it's not marked abstract, extern, or partial

而且我也无法将其标记为abstract:

The modifier abstract is not valid for this item

我没有特别需要 MyClassValidationAttribute.NET 中的其他基类。我只想知道它们是如何在运行时编译的。

最佳答案

您不是在查看 ValidationAttribute 的代码,而是在查看它的元数据。

actual constructor看起来像

protected ValidationAttribute()
: this(() => DataAnnotationsResources.ValidationAttribute_ValidationError) {
}

关于c# - 抽象类中未实现的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37213398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com