gpt4 book ai didi

c# - 如何在结构构造函数中设置自动属性支持字段的值?

转载 作者:IT王子 更新时间:2023-10-29 04:41:25 24 4
gpt4 key购买 nike

给定一个这样的结构:

public struct SomeStruct
{
public SomeStruct(String stringProperty, Int32 intProperty)
{
this.StringProperty = stringProperty;
this.IntProperty = intProperty;
}

public String StringProperty { get; set; }
public Int32 IntProperty { get; set; }
}

当然,会生成一个编译器错误,显示为在将其所​​有字段分配给之前无法使用“this”对象

有没有办法为支持字段或属性本身赋值,或者我是否必须使用我自己的显式支持字段以老式方式实现属性?

最佳答案

在 C# 6 之前,您需要在这种情况下使用“this”构造函数:

public SomeStruct(String stringProperty, Int32 intProperty) : this()
{
this.StringProperty = stringProperty;
this.IntProperty = intProperty;
}

这样做会调用默认构造函数,并通过这样做初始化所有字段,从而允许在自定义构造函数中引用 this


编辑:直到 C# 6,这才开始合法;然而,如今它作为一个readonly struct会好得多:

public readonly struct SomeStruct
{
public SomeStruct(string stringProperty, int intProperty)
{
this.StringProperty = stringProperty;
this.IntProperty = intProperty;
}

public string StringProperty { get; }
public int IntProperty { get; }
}

关于c# - 如何在结构构造函数中设置自动属性支持字段的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/522280/

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