c# – 类中的struct字段的保护级别

c# – 类中的struct字段的保护级别,第1张

概述我对C#编程很新,所以这可能是一个初学者的问题. 我得到一个“A.Test.That.Fails”是由于其保护级别“无法访问的错误在以下代码片段,我不明白的原因. namespace A{ class Test { public void Demo() { That[] it = new That[42]; 我对C#编程很新,所以这可能是一个初学者的问题.

我得到一个“A.Test.That.Fails”是由于其保护级别“无法访问的错误在以下代码片段,我不明白的原因.

namespace A{    class Test    {        public voID Demo()        {            That[] it = new That[42];            it[0].fails = 21;        }        public struct That        {            int fails;        }    }}

来自C编程,并且已经阅读了保护规则几乎是一样的,因为有一个类,我期望它可以工作,即使该结构和Demo方法都是私有的.

作为附注,将非常感谢与C程序员总结范围和保护规则的一些页面的链接.

解决方法 其他答复已经有你的答案,所以我不会在这里打死一匹死马.您需要将该字段声明为public,以便能够从外部代码访问该字段.

在C中,结构和类是相同的,唯一的区别是它们各自成员的默认访问级别.

但是,C#并不是这样.一般来说,你应该只使用一个不变的小的,短命的对象的结构(不会改变).结构具有值类型语义,其中作为类具有引用类型语义.如果您正在C#编程中学习编程,那么了解值类型和引用类型之间的区别非常重要. Jon Skeet发表了an article,试图提供这个解释.但是你一定会选择一个很好的介绍性书籍给C#来更详细的对待这些问题.

通常情况下,您将需要在C#中使用一个类,而不是一个结构.当您使用该类时,请注意,Microsoft的C#设计指南倾向于推荐公开字段.相反,他们建议您使用由私有字段支持的公共属性. here给出了该准则背后的理由更为彻底的阐述.例如:

class TimePeriod{    private double seconds;    public double Seconds    {        get { return seconds; }        set { seconds = value; }    }}

或者您可以使用更简单的“自动属性”语法,其中编译器自动生成该私有备份字段:

class TimePeriod{    public double Seconds { get; set; }}
总结

以上是内存溢出为你收集整理的c# – 类中的struct字段的保护级别全部内容,希望文章能够帮你解决c# – 类中的struct字段的保护级别所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1260818.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存