Tag: 构造函数

什么是’this’构造函数,它是什么

我正处于学习过程中,我有一个问题,我找不到满意的答案。 我需要一个简介。 我一直看到它,人们已经建议修复我使用它的代码。 我真的不知道它到底是做什么的。 如果有人愿意给我一个基本的纲要,我会非常高兴。

在C#构造函数中使用this()

我一直试图弄清楚这些构造函数之间是否存在任何差异。 假设有一个不带参数的Foo()构造函数,所有这些构造函数都会有相同的结果吗? 例1 public Foo() : this() { blah; blah; blah; } 例2 public Foo() { this(); blah; blah; blah; } 例3 public Foo() { this = new Foo(); blah; blah; blah; }

在不存在的结构布局中循环

这是我的一些代码的简化版本: public struct info { public float a, b; public info? c; public info(float a, float b, info? c = null) { this.a = a; this.b = b; this.c = c; } } 问题是错误Struct member ‘info’ causes a cycle in the struct layout. 我喜欢结构类似于值类型的行为。 我可以使用类和克隆成员函数来模拟这个,但我不明白为什么我需要。 这个错误是怎么回事? 在某些类似的情况下,递归可能会永远导致构造,但在这种情况下我无法想到它的任何方式。 下面是程序编译时应该没问题的例子。 new info(1, 2); new info(1, 2, null); […]

无法分配struct中自动实现的属性

我有下一个代码: struct T { public T(int u) { this.U = 10; //Errors are here } public int U { get; private set; } } C#编译器在规定的行中给出了一对错误:1)在将控制权返回给调用者之前,必须完全分配自动实现的属性“TestConsoleApp.Program.TU”的备份字段。 考虑从构造函数初始化程序中调用默认构造函数。 2)在分配所有字段之前,不能使用’this’对象 我做错了什么? 帮帮我理解

为什么System.Drawing.Bitmap构造函数中的“stride”必须是4的倍数?

我正在编写一个应用程序,要求我采用专有的位图格式(MVTec Halcon HImage)并将其转换为C#中的System.Drawing.Bitmap。 除了使用“获取指针”function外,我给你的唯一专有function是帮我写文件。 这个function很棒,它给了我一个指向像素数据,宽度,高度和图像类型的指针。 我的问题是当我使用构造函数创建System.Drawing.Bitmap时: new System.Drawing.Bitmap(width, height, stride, format, scan) 我需要指定一个4的倍数的“步幅”。这可能是一个问题,因为我不确定我的函数将被命中的大小位图。 假设我最终得到一个111×111像素的位图,除了在我的图像中添加一个伪列或减去3列之外,我无法运行此function。 有没有办法可以绕过这个限制?