相关疑难解决方法(0)

结构构造函数:"在将控制权返回给调用者之前,必须完全分配字段."

这是我想写的结构:

  public struct AttackTraits
        {
            public AttackTraits(double probability, int damage, float distance)
            {
                Probability = probability;
                Distance = distance;
                Damage = damage;
            }

            private double probability;
            public double Probability
            {
                get
                {
                    return probability;
                }
                set
                {
                    if (value > 1 || value < 0)
                    {
                        throw new ArgumentOutOfRangeException("Probability values must be in the range [0, 1]");
                    }
                    probability = value;
                }
            }

            public int Damage { get; set; }

            public float Distance { get; set; }
        }
Run Code Online (Sandbox Code Playgroud)

这会导致以下编译错误:

在分配所有字段之前,不能使用"this"对象 …

c# constructor struct

106
推荐指数
3
解决办法
6万
查看次数

如何检查结构消耗的字节数?

如果我创建一个相对较大的结构,我如何计算它在内存中占用的字节数?

我们可以手动完成,但如果结构足够大,那么我们该怎么做呢?是否有一些代码块或应用程序?

.net c# byte

42
推荐指数
6
解决办法
2万
查看次数

C#:在运行时获取值类型变量的大小?

我知道C和C++等语言允许在运行时使用sizeof()函数确定数据的大小(结构,数组,变量......).我在C#中尝试过,显然它不允许将变量放入sizeof()函数中,但只键入defintions(float,byte,Int32,uint等等),我该怎么做呢?

实际上,我希望这种情况发生:

int x;
Console.WriteLine(sizeof(x));   // Output: 4
Run Code Online (Sandbox Code Playgroud)

并不是:

Console.WriteLine(sizeof(int)); // Output: 4
Run Code Online (Sandbox Code Playgroud)

我确信在C#中有一些正常的方法可以在运行时获取数据大小,但谷歌并没有提供太多帮助..这是我最后的希望

c# variables runtime value-type

21
推荐指数
4
解决办法
4万
查看次数

标签 统计

c# ×3

.net ×1

byte ×1

constructor ×1

runtime ×1

struct ×1

value-type ×1

variables ×1