当前位置:  编程技术>.net/c#/asp.net

C#中结构(struct)的部分初始化和完全初始化实例分析

    来源: 互联网  发布时间:2014-11-03

    本文导语:  本文实例分析了C#中结构(struct)的部分初始化和完全初始化,分享给大家供大家参考。具体分析如下: 假设有这样一个值类型struct,如下所示: public struct Size { public int Length; public int Width; public int Area() { ...

本文实例分析了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语言结构体初始化的疑问
  • 浅谈C语言中结构体的初始化
  • 问1)标记化的结构初始化语法2)SET_MODULE_OWNER
  • 关于phtread_mutext_t结构初始化的疑惑
  • 浅析C++中结构体的定义、初始化和引用
  • C#学习笔记之C#结构
  • C#枚举类型与结构类型实例解析
  • 如何实现C#自定义结构的强制转换
  • C#中使用反射获取结构体实例及思路
  • 深入c# 类和结构的区别总结详解
  • C++联合体转换成C#结构的实现方法
  • c#结构和类的相关介绍
  • 深入探讨C#中的结构struct
  • C#中类与结构的区别实例分析
  • C#学习笔记之用户定义类(或结构)的类型转换
  • c#分支与循环结构的实例解析
  • C#数据结构之循环链表的实例代码
  • 基于c# 类、接口、结构的联系与区别详解
  • c# DataTable与不同结构实体类转换的方法实例
  • C#数据结构揭秘一
  • C#数据结构与算法揭秘一
  • c#入门之枚举和结构体使用详解(控制台接收字符串以相反的方向输出)
  • C#数据结构与算法揭秘二 线性结构
  • C#数据结构与算法揭秘三 链表
  • C#数据结构与算法揭秘四 双向链表
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Objective-C中常用的结构体NSRange,NSPoint,NSSize(CGSize),NSRect实例分析
  • 实例分析Java Class的文件结构
  • <<大话数据结构>>中冒泡排序算法改进
  • 请问:在用proc方式往数据库插入数据时,我能不能定义一个结构体,它与表的每一项对应,将结构体赋好值后,再只将这个结构体插入表中,这行不行啊?
  • 基于Key-Value的NOSQL数据库Redis的数据结构及常用相关命令介绍
  • 全局结构体变量和全局结构体指针变量
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • 《arm体系结构结构与编程》书如何
  • 数据结构:图(有向图,无向图),在Python中的表示和实现代码示例
  • file结构和inode结构
  • mysql 命令大全及导入导出表结构或数据
  • 《莱昂氏UNIX源代码分析》中有一种结构体声明没有结构体名
  • 关于学籍管理系统B/S结构实现的结构问题
  • GCC 编译问题: 结构A中有个成员结构B??
  • 强人,linux下驱动相关数据结构和usb设备数据结构之间的功能分析
  • mysql iis7站长之家
  • 协议的设计一般采用结构体进行数据打包,在协议设计的结构体中能不能使用指针 ?
  • struct __una_u16结构是什么结构.
  • GNU汇编fill填充一个数据结构使得另一个数据结构全部清零
  • 高手帮帮忙!vi中如何实现跳转到任意结构体或函数的声明处,包括系统库中声明的函数和数据结构?
  • jbuilder7里如何在project pane里显示出某个project的所有的类的结构图,就如显示source java files的结构图一样
  • 关于客户服务器结构与浏览器服务器结构编程的比较
  • 有一个win32的结构体,大伙看看能否转换成linux下的基本等价的结构体?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3