无法分配结构体中自动实现的属性

2023-12-31

我有下一个代码:

struct T 
{
    public T(int u) 
    { 
        this.U = 10; //Errors are here
    }

    public int U { get; private set;  }
}

C# 编译器在指定行中给出了两个错误: 1) 在控制返回给调用者之前,必须完全分配自动实现的属性“TestConsoleApp.Program.T.U”的支持字段。考虑从构造函数初始值设定项调用默认构造函数。 2) 在将'this'对象的所有字段分配给之前,不能使用'this'对象

我做错了什么?帮助我理解。


来自 C# 规范:

10.7.3 自动实现的属性

当属性被指定为自动实现的属性时, 隐藏的支持字段自动可用于该属性, 并且访问器被实现来读取和写入 支持场。

[已删除]

由于支持字段不可访问,因此可以读取和写入 只能通过属性访问器,即使在包含类型中也是如此。

[已删除]

此限制还意味着结构类型的明确赋值 具有自动实现的属性只能使用 结构的标准构造函数,因为分配给属性 本身要求结构体被明确赋值。这意味着 用户定义的构造函数必须调用默认构造函数。

所以你需要这个:

struct T 
{
    public T(int u)
        : this()
    { 
        this.U = u;
    }

    public int U { get; private set; }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法分配结构体中自动实现的属性 的相关文章

随机推荐

  • javascript:将 元素保存到磁盘上的文件

    在我的 HTML 上 我有一个 SVG 元素 它使用 d3js 渲染并在 CSS 中应用样式 当我右键单击浏览器时 我可以选择 保存图像 此操作将保存应用所有 CSS 样式呈现的图像 我一直在寻找保存文件的好方法 转到画布并导出画布 可另存
  • AVAudioPlayer.play() 不播放声音

    为什么下面的代码不播放声音 它为 play 返回 true 但我听不到任何声音 let path Users account Music sound mp3 let fileURL NSURL fileURLWithPath path va
  • iOS7中UITextView contentSize的变化和NSLayoutManager

    问题 UITextView默默地改变它contentSize在某些情况下 最简单的情况是带有大文本和键盘的textView 只需添加 UITextView 出口并设置 viewDidLoad as void viewDidLoad supe
  • UniqueIdentifier 现在导致 Apple 拒绝[重复]

    这个问题在这里已经有答案了 请不要将此标记为重复项 这个问题是关于辛佩瑞姆以及它处理 uniqueIdentifier 和identifierForVendor 的方式 Simperium仍在使用 UIDevice currentDevic
  • 在 PowerShell 中运行 Python

    我正在尝试使用指南来学习 Python 的基础知识 艰难地学习Python https en wikipedia org wiki Zed Shaw Books by 泽德 肖 https en wikipedia org wiki Zed
  • 从StreamReader中批量读取

    我在尝试通过 StreamReader 将 800MB 文本文件加载到 DataTable 时遇到了 OutOfMemory 异常 我想知道是否有办法从内存流中批量加载DataTable 即从StreamReader读取文本文件的前10 0
  • C# 流布局面板换行或换行

    我正在向流程布局面板添加一些控件 在一些控件之间我需要换行 请问我怎样才能实现这个目标 谢谢 添加中断前的最后一个控件后 调用flow SetFlowBreak lastControl true Note lastControl是您想要在之
  • 房间数据库架构实体扩展错误

    在使用 android Room 时 我有以下实体 Entity public class Call implements Parcelable PrimaryKey autoGenerate true private long id pr
  • 创建带有用户帐户的网页,我需要记住什么?

    我正在尝试编写一个具有用户帐户的网站 除了密码和电子邮件地址之外 没有太多敏感信息 但我并不真正明白我在做什么 我一边走一边把它搞砸了 关于安全或任何其他重要细节 我应该记住什么吗 你应该 加密敏感数据 http www hscripts
  • 快速位集追加?

    我正在寻找一种具有快速位附加功能的位集实现 其中可以一次性有效地附加多个位 e g char value 31 char n bits 5 fast bitset bits bits append value n bits 到目前为止 我已
  • 无法在 R 中安装 Github 包

    我需要一个位于 Github 上的软件包 我知道有多种解决方案可以在 R 中安装该软件包 我正在尝试在 Windows 服务器上安装该软件包 这是我尝试过的 解决方案1 基于Vignette install packages devtool
  • IoC 和托管外接程序框架 (System.AddIn) 能否与隔离的 AppDomain 一起工作?

    如果我使用托管 AddIn 框架 System AddIn 并将其设置为使用单独的 AppDomain 我可以使用主 默认 AppDomain 中的集中式 IoC 容器吗 IoC 容器可以跨 AppDomain 解析吗 我将通过忽略等式的
  • 如何在android中设置底部导航栏的顶部边框,如图所示

    是否可以在android中设置底部导航栏的顶部边框 如果可能的话请告诉我如何做到这一点 我正在使用android的新底部导航视图 这是我的代码
  • 使用从 insert into 返回的 ids,使用外键插入记录

    我有一张桌子 monster id serial name varchar primary key id 我还有另一张桌子 ranged monster id monster integer distance integer foreign
  • Javascript getElementById null 错误

    我最近发布了有关 Firefox 中 javascript 的问题 并且指出该问题可能是 document write 以某种方式覆盖了脚本 有人建议我使用 ID 来解决覆盖脚本和避免信息堆叠的问题 https stackoverflow
  • 无法同时创建本地和远程分支(跟踪)

    From Pro Git http git scm com book en Git Branching Remote Branches 如果您愿意 您可以设置其他跟踪分支 那些不希望的分支 跟踪起源分支 不跟踪主分支 简单的 case 是您
  • 从动态创建的选项中设置选项“选定”属性

    我有一个使用 JavaScript 函数动态创建的选择选项 选择对象是
  • RAM 地址与内存映射地址如何区分

    我试图了解 ARM 上的启动过程和内存管理 并且有与内存映射地址和 RAM 地址相关的问题 我的理解是 每个 Soc 都会有一个内存映射 大小取决于寻址能力 例如 32 位处理器的寻址能力为 2 32 或 4GB 内存映射将包含映射的不同外
  • Android 的 Google+ 登录无法正常工作,错误代码 4

    我已遵循guide https developers google com mobile android getting started关于如何设置 google 登录 我完成了每一步 基本上复制并粘贴了代码 这是场景 我在两台不同的计算机
  • 无法分配结构体中自动实现的属性

    我有下一个代码 struct T public T int u this U 10 Errors are here public int U get private set C 编译器在指定行中给出了两个错误 1 在控制返回给调用者之前 必