c# - 如何将多个构造函数添加到结构?
问题描述
我有以下代码:
struct test {
public int a;
public int b;
public test(int a) {
this(a, null);
}
public test(int a, int b) {
this.a = a;
this.b = b;
}
}
我希望test
结构有两个不同的构造函数,一个只需要传入a
,另一个可以传入a
和b
.
此代码不起作用,因为它失败并出现一些错误:
对于public test(int a) {
线路:
在将控制权返回给调用者之前,必须完全分配字段“test.a”
在将控制权返回给调用者之前,必须完全分配字段“test.b”
对于这this(a, null);
条线:
应为方法名称。
在分配所有字段之前,不能使用“this”对象
解决方案
struct test {
public int a;
public int b;
public test(int a) : this(a, 0) { }
public test(int a, int b = 0) {
this.a = a;
this.b = b;
}
}
您不能将 null 分配给 int。此外,您的变量名称不明确。您可以使用可选参数来实现您要查找的内容。或链接构造函数。
推荐阅读
- c - 子进程如何杀死其他子进程然后终止?
- python - rtx 2070s 无法从设备分配 gpu 内存:CUDA_ERROR_OUT_OF_MEMORY:内存不足
- php - 无法让 PHP 将表单数据处理到 MySQL 数据库中
- c++ - 如何创建自定义 INET 数据包?
- c# - 在monogame中添加背景不起作用
- android - 我的位置按钮未显示在导航抽屉中
- c - 如何使用 open() 安全地设置标志?
- ios - 使用 Swift 和 iOS 保存文件
- unity3d - Unity,我对 DontDestroyOnLoad 有问题,无法在不同的场景中保持跟踪
- spring-boot - Spring Cloud 网关在过滤器中发送响应