!!!!!! 结构体是值类型 函数接收想改变要加ref out
string是特殊的引用类型 在给string变量赋值的时候 c#会给string变量赋值新的存储空间
namespace 结构体
{
// 结构体一般写在namespace下面
// 结构体关键字 struct
struct 自定义结构体名 // 命名规范帕斯卡命名法
{
//变量
//构造函数
//函数
}
struct Student
{
public int Id; // 声明的变量和方法默认是private 改为public后外部才能访问
public string Name;
//函数中可以直接使用结构体内部申明的变量
public void Speak()
{
Console.WriteLine("我的名字是{0},我的Id是{1}",Name,Id);
}
public Student(int Id,string Name)
{
//this 代表自己 代表结构体中的变量
this.Id = Id;
this.Name = Name;
}
}
// 结构体申明的变量 不能直接初始化
// 变量类型 可以写任何类型 但是不能是自己的结构体 (Student s;)可以是其他的结构体
// 结构体里面的方法都可以重载的 (* - V - *)
// 结构体的构造函数 简化声明结构体变量后给结构体变量中的变量赋值(初始化的过程)
// 1.没有返回值
// 2.函数名必须和结构体名相同
// 3.必须有参数
// 4.如果声明了构造函数 那么必须在其中对所有变量数据初始化
// this.Id = Id;
// this.Name = Name;
class program {
static void Main(String[] args)
{
//声明结构体
Student student ;
student.Id = 1;
student.Name = "C";
student.Speak();
// 构造函数的使用
Student student1=new Student(2,"D");
student1.Speak();
}
}
}
using System.Collections.Specialized;
using System.Xml.Linq;
namespace 结构体
{
// 结构体一般写在namespace下面
// 结构体关键字 struct
struct 自定义结构体名 // 命名规范帕斯卡命名法
{
//变量
//构造函数
//函数
}
struct Student
{
public int Id; // 声明的变量和方法默认是private 改为public后外部才能访问
public string Name;
//函数中可以直接使用结构体内部申明的变量
public void Speak()
{
Console.WriteLine("我的名字是{0},我的Id是{1}",Name,Id);
}
public Student(int Id,string Name)
{
//this 代表自己 代表结构体中的变量
this.Id = Id;
this.Name = Name;
}
}
//结构体申明的变量 不能直接初始化
//变量类型 可以写任何类型 但是不能是自己的结构体 (Student s;)可以是其他的结构体
//结构体里面的方法都可以重载的 (* - V - *)
// 结构体的构造函数 简化声明结构体变量后给结构体变量中的变量赋值(初始化的过程)
// 1.没有返回值
// 2.函数名必须和结构体名相同
// 3.必须有参数
// 4.如果声明了构造函数 那么必须在其中对所有变量数据初始化
// this.Id = Id;
// this.Name = Name;
class program {
static void Main(String[] args)
{
//声明结构体
Student student ;
student.Id = 1;
student.Name = "C";
student.Speak();
// 构造函数的使用
Student student1=new Student(2,"D");
student1.Speak();
}
}
}