C#中结构(struct)的部分初始化和完全初始化实例分析
作者:shichen2014 时间:2021-11-01 16:33:36
本文实例分析了C#中结构(struct)的部分初始化和完全初始化,分享给大家供大家参考。具体分析如下:
假设有这样一个值类型struct,如下所示:
public struct Size
{
public int Length;
public int Width;
public int Area()
{
return Length*Width;
}
}
一、客户端,给所有struct字段初始化后调用方法
class Program
{
static void Main(string[] args)
{
Size size;
size.Length = 10;
size.Width = 5;
Console.WriteLine(size.Area());
Console.ReadKey();
}
}
结果:50
二、客户端,给部分struct字段初始化
class Program
{
static void Main(string[] args)
{
Size size;
size.Length = 10;
Console.WriteLine(size.Area());
Console.ReadKey();
}
}
结果:报错,使用了未赋值的局部变量。
可见:如果想调用struct实例的任何方法,需要给struct的所有字段初始化。
三、客户端,通过构造函数初始化struct
class Program
{
static void Main(string[] args)
{
Size size = new Size();
Console.WriteLine(size.Area());
Console.ReadKey();
}
}
结果:0
在这里:通过struct构造函数创建实例,实际上是给struct的所有字段赋上了初值0。
总结:
在调用struct实例方法之前,必须给struct的所有字段赋上初值,即要求完全初始化,部分初始化是不允许的。要么通过"struct实例.字段名"给所有字段显式赋值,要么通过struct构造函数,给所有字段赋上默认值。
希望本文所述分析对大家C#程序设计的学习有所帮助。
标签:C#,结构,初始化
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
将文件夹下所有文件输出到日志文件中 c#递归算法学习示例
2023-04-08 20:36:22
详解spring cloud ouath2中的资源服务器
2022-09-24 15:36:43
![](https://img.aspxhome.com/file/2023/8/61238_0s.png)
mybatis-plus自动填充插入更新时间有8小时时差
2021-07-26 07:18:40
![](https://img.aspxhome.com/file/2023/7/74767_0s.png)
Maven管理SpringBoot Profile详解
2022-03-20 09:57:45
Maven的安装配置详解
2023-11-24 08:52:05
![](https://img.aspxhome.com/file/2023/3/59323_0s.png)
Java concurrency线程池之线程池原理(二)_动力节点Java学院整理
2023-11-28 23:43:18
MyBatis中使用$和#所遇到的问题及解决办法
2023-03-25 12:27:55
IDEA中的.iml文件和.idea文件夹
2023-11-23 11:47:19
![](https://img.aspxhome.com/file/2023/0/59680_0s.png)
java中获取json的所有key方法
2023-10-15 06:15:26
Java代码块与代码加载顺序原理详解
2023-06-03 12:56:42
![](https://img.aspxhome.com/file/2023/5/73025_0s.png)
SpringBoot整合Echarts实现用户人数和性别展示功能(详细步骤)
2023-02-22 00:31:59
![](https://img.aspxhome.com/file/2023/0/66530_0s.png)
浅谈Java中各种修饰符与访问修饰符的说明
2022-10-07 00:49:52
Java的RxJava库操作符的用法及实例讲解
2021-12-14 22:31:41
Java Swing实现简单的体重指数(BMI)计算器功能示例
2022-12-16 09:34:56
![](https://img.aspxhome.com/file/2023/6/65756_0s.gif)
关于Maven的使用,这些你都真的了解么
2022-01-02 14:19:08
微信公众号 网页授权登录及code been used解决详解
2023-02-06 18:49:00
![](https://img.aspxhome.com/file/2023/8/65768_0s.png)
springboot集成swagger3与knife4j的详细代码
2023-11-27 18:22:58
![](https://img.aspxhome.com/file/2023/1/60471_0s.png)
IDEA与模拟器安装调试失败的处理方法:INSTALL_PARSE_FAILED_NO_CERTIFICATES
2022-08-25 13:57:53
![](https://img.aspxhome.com/file/2023/2/75462_0s.png)
解析Mybatis SqlSessionFactory初始化原理
2022-07-09 04:24:05
![](https://img.aspxhome.com/file/2023/4/62084_0s.jpg)
Java数据结构超详细分析二叉搜索树
2022-12-01 01:34:20
![](https://img.aspxhome.com/file/2023/3/61023_0s.jpg)