c# - 如何将结构定义为属性?

标签 c# struct properties

标题可能有误,如有请修改。我不确定如何提出我的问题,所以只看代码,因为它应该很明显。

使用注释代码可以,但我想知道为什么实际代码不起作用。我确定这是错误的,但如何解决?或者这不是它的做法?

using System;

namespace SomethingAwful.TestCases.Structs
{
    public class Program
    {
        public static void Main()
        {
            Foo f = new Foo();
            f.Bar.Baz = 1;

            Console.WriteLine(f.Bar.Baz);
        }
    }

    public class Foo
    {
        public struct FooBar
        {
            private int baz;

            public int Baz
            {
                get
                {
                    return baz;
                }
                set
                {
                    baz = value;
                }
            }

            public FooBar(int baz)
            {
                this.baz = baz;
            }
        }

        private FooBar bar;

        public FooBar Bar
        {
            get
            {
                return bar;
            }
            set
            {
                bar = value;
            }
        }

        //public FooBar Bar;

        public Foo()
        {
            this.bar = new FooBar();
            //this.Bar = new FooBar();
        }
    }
}

最佳答案

结构仅按值进行复制,因此您最终要做的就是更改返回的副本。使用类。

关于c# - 如何将结构定义为属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1117835/

相关文章:

c++ - 复制 C 风格的数组和结构

java - Selenium Webdriver (Java) : What are the benefits (if any) of using an objectmap. 属性文件而不是页面对象类?

c# - "Item"属性以及索引器

c# - 在更新模型后更新 View

c# - 如何初始化自定义 HTTP 上下文或 HttpContextBase

c# - 如何注释 C# 函数以表明参数返回时不为 null

java - 如何判断String的内容是Integer、Boolean还是Double?

c# - 尝试获取 ICacheManager 类型的实例时发生激活错误, key \"\"“

c++ - 不完整的类型,前向声明

c - 用c将结构写入文件