假设我有一个类:
public class Products
{
public string ID { get; set; }
public string Name { get; set; }
public string GetItemName() { ... }
public void SetItemName() { ... }
public string GetItemID() { ... }
public void SetItemID() { ... }
//...
}可以让所有的属性或方法继承父类的访问修饰符,这样我就不必为每个属性/方法分配public。
发布于 2012-02-08 17:23:29
public string Name { get; set; }
public string GetItemName() { ... }
public void SetItemName() { ... }那不是C#代码,那是C++。一种不支持属性,但支持以下内容的语言:
public:
string GetItemName();
void SetItemName();这可能就是你真正想要的。不,永远不要错误地将C#与C++进行比较,它只是在传递时与语言相似。访问者关键字必须应用于每个成员。值得庆幸的是,你将拥有更少的数据。删除GetItemName和SetItemName方法,只需Name属性即可。
这是一篇可能对你有用的旧杂志文章,"C++ -> C#: What You Need to Know to Move from C++ to C#“
发布于 2012-02-08 16:52:19
对于class,没有办法做到这一点。这就是C#语法的定义方式。如果您跳过访问修饰符,那么将应用默认值,对于类,它将是内部修饰符,对于它们的成员,它将是私有的。
根据specification,其他默认值为:
与类一样,
发布于 2012-02-08 16:59:41
不,语言规范说明如果您不指定访问修饰符,将使用默认修饰符:
默认情况下,类和结构中的
成员时放在另一个类型(嵌套类)中,枚举成员和命名空间没有可访问性修饰符的概念,但可以认为它们始终是公共的。
https://stackoverflow.com/questions/9188924
复制相似问题