接口:
接口不能被实例化,接口可以继承接口
接口里的方法都是抽象的,没有方法体;
接口可以包含事件、索引器、方法和属性
Interface IA
{
string color {set;get;}
void Add();
string this[int ,index]{set;get;}
event TestDelegate TestEvent
}
类:
一个类可以实现多个接口
抽象类和接口都不能被实例化
1.Class可以被实例化,属于引用类型,分配在内存的堆(先进后出,属性)上,Struct属于值类型,分配在内存的栈(先进先出,地址)上
2.值类型转换成引用类型的时候,叫装箱;引用类型转换成值类型叫拆箱;
(引用类型分配在堆中,因此两个对象指向同一个地址,修改值会该变原来的值)(值类型在栈中,赋值等于全部赋值到P2栈空间,保存的只是引用)
3.结构的成员不能赋初值,类可以,结构不能实例化
4.结构不能继承,但可以实现接口,类都可以
5.结构可以定义带参的的结构函数,负责初始化所用的成员字段
namespace 结构
{
public struct Person
{
public string _name;//字段 一定要注意细节就是前面的下划线,用于与变量的区别
public int _age;
public Gender _Gender;
}
public struct MyColor
{
public int _red;
public int _green;
public int _blue;
}
public enum Gender
{
男,女
}
class Program
{
static void Main(string[] args)
{
Person Person;
Person._name = "张三";
Person._age = 18;
Person._Gender = Gender.男;
Person P;
P._name = "大黄";
P._age = 12;
P._Gender = Gender.女;
Console.WriteLine("我叫{0}, 我今年 {1}岁了,我是{2}孩子", Person._name,Person._age,Person._Gender);
Console.WriteLine("我叫{0}, 我今年 {1}岁了,我是{2}孩子", P._name,P._age,P._Gender);
Console.ReadKey();
// MyColor mycolor;
}
}