科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件针对 Java 开发人员的 C# 编程语言(15)

针对 Java 开发人员的 C# 编程语言(15)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

针对 Java 开发人员的 C# 编程语言结构

来源:MSDN 2007年11月7日

关键字: 编程语言 C# java Linux

  • 评论
  • 分享微博
  • 分享邮件

结构

C# 支持 struct 关键字,它是源于 C 的另一个项,但是不可用于 Java。可以将 struct 看作是一个轻量级类。它可以采用与类大致相同的方式包含构造函数、常量、字段、方法、属性、索引器、运算符和嵌套类型。structs 不同于类,因为它们不能是抽象的,并且不支持实现继承。结构与类还有一点重要的不同,结构是值类型的,而类是引用类型的。在构造函数的工作方式上,结构也有所不同。特别是,编译器总是提供默认的不带参数的构造函数,并且不允许您替换它。

在下面的示例中,我们使用 new 关键字并且通过初始化实例的成员初始化了一个 struct:

using System;
public struct CustomerStruct
{
  public int ID;
  public string name;

  public CustomerStruct(int customerID, string customerName)
  {
    ID = customerID;
    name = customerName;
  }
}

class TestClass
{
  public static void Main(string[] args)
  {
    // Declare a CustomerStruct using the default constructor
    CustomerStruct customer = new CustomerStruct();

    Console.WriteLine("Struct values before initialization");
    Console.WriteLine("ID = {0}, Name = {1}", customer.ID,
                             customer.name);
    customer.ID = 100;
    customer.name = "Robert";

    Console.WriteLine("Struct values after initialization");
    Console.WriteLine("ID = {0}, Name = {1}", customer.ID,
                             customer.name);
  }
}

当我们编译并运行上面的代码时,它的输出显示,该结构的变量在默认情况下是已初始化的。int 变量初始化为 0,而字符串变量初始化为空字符串:

初始化前的 struct 变量

ID = 0, Name =

初始化后的 truct 值

ID = 100, Name = Robert

注意,当我们使用另一种表示法(CustomerStruct customer)声明 customer 时,它的成员变量将不被初始化,因此,如果试图在为它们赋值前使用它们,将会产生编译时错误。

查看本文来源
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章