C# 类、结构与扩展方法
我并非C#大神,只是用了这么久C#,会对这门语言有着一些自己的简介。为了总结一下自己对C#的认识,也为了能够和大家一起分享学习C#的过程,我打算把我的各种各样的理解写出来。
在今后这一系列博客中,我主要总结的是一些关于C#、.NET应用方面的经验,并不会对C#的历史、设计模式、算法、.NET的原理等作说明。由于是自己的感悟,因此难免会有错误的地方,所以欢迎大家来指正。
1、类与结构的区别
在C#中,万物皆对象。类和结构是C#创建对象的模板。不同的是,结构是存在堆中的“值类型”,类是存在栈上的“引用类型”。
看以下例子:
using System;
namespace Demo
{
public struct DemoStruct
{
public int number;
}
public class DemoClass
{
public int number;
}
public class Program
{
static void Main(string[] args)
{
DemoStruct s_a;
s_a.number = 1;
DemoClass c_a;
c_a.number = 1;
}
}
}
以上代码根本通不过编译,编译器会提示“使用了未赋值的局部变量“c_a”,如果要让程序通过编译,必须要把DemoClass c_a;</