1、定义一个用于存储学生姓名 、性别、年龄和地址的结构类型,熟悉并掌握struct类型使用方法,演示代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Demo_Struct
{
class Program
{
public struct StructStudent //值类型,栈
{
public string Name;
public string Sex;
public int Age;
public string Addr;
public StructStudent(string name,string sex,int age,string addr)
{
Name = name;
Sex = sex;
Age = age;
Addr = addr;
}
public void Show()
{
Console.WriteLine("Show()方法显示内容-->Name:{0},Sex:{1},Age:{2},Addr:{3}",Name,Sex,Age,Addr);
}
}
static void Main(string[] args) //栈
{
StructStudent stu;
stu.Name = "小宇飞刀";
stu.Sex = "男";
stu.Age = 100;
stu.Addr = "江西南昌";
stu.Show();
Console.WriteLine("Main()方法中显示内容-->Name:{0},Sex:{1},Age:{2},Addr:{3}",stu.Name,stu.Sex,stu.Age,stu.Addr);
StructStudent stu2 = new StructStudent("xieyunc","man",33,"中国北京");
stu2.Show();
Console.WriteLine("Main()方法中显示内容-->Name:{0},Sex:{1},Age:{2},Addr:{3}", stu2.Name, stu2.Sex, stu2.Age, stu2.Addr);
Console.ReadKey();
}
}
}
2、定义一个用于存储学生姓名 、性别、年龄和地址的类类型,熟悉并掌握class类的定义和使用方法。理解数据成员(字段、属性)、类方法的概念与含义。了解class与struct的区别。演示代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Demo_Class
{
class Program
{
public class Student //引用类型
{
private string _Name;//private 字段
private string _Sex;
private int _Age;
private string _Addr;
public string Name //public 属性,如果没有set方法,则当前属性为只读属性
{
get { return _Name; }
//set { _Name = value; }//value 是set方法中的隐型变量
}
public string Sex
{
get { return _Sex; }
set
{
if(value!="男" && value!="女")
{
Console.WriteLine("Sex属性只能赋值【男】或者【女】。");
_Sex = "男";
}
else
{
_Sex = value;
}
}
}
public int Age
{
get { return _Age; }
set
{
if (value <18 || value > 38)
{
Console.WriteLine("Age的取值范围为:18~38岁之间。");
_Age = 18;
}
else
{
_Age = value;
}
}
}
public string Addr
{
get { return _Addr; }
set { _Addr = value; }
}
public Student(string name, string sex, int age, string addr)
{
_Name = name;
if (sex != "男" && sex != "女")
{
Console.WriteLine("Sex属性只能赋值【男】或者【女】。");
_Sex = "男";
}
else
{
_Sex = sex;
}
_Age = age;
_Addr = addr;
}
public Student()
{
_Name = "小宇飞刀";
_Sex = "";
_Age = 0;
_Addr = "";
}
public void Show()
{
Console.WriteLine("Show()方法显示内容-->Name:{0},Sex:{1},Age:{2},Addr:{3}", _Name, _Sex, _Age, _Addr);
}
}
static void Main(string[] args) //栈
{
Student stu = new Student();
//stu.Name = "小宇飞刀";
stu.Sex = "中";
stu.Age = 100;
stu.Addr = "江西南昌";
stu.Show();
Console.WriteLine("Main()方法中显示内容-->Name:{0},Sex:{1},Age:{2},Addr:{3}", stu.Name, stu.Sex, stu.Age, stu.Addr);
Student stu2 = new Student("xieyunc", "man", 33, "中国北京");
stu2.Show();
Console.WriteLine("Main()方法中显示内容-->Name:{0},Sex:{1},Age:{2},Addr:{3}", stu2.Name, stu2.Sex, stu2.Age, stu2.Addr);
Console.ReadKey();
}
}
}
3、分别编写一个用于交换两个变量内容的函数,分别使用值类型参数和引用类型作为参数,掌握值类型参数与引用类型参数的定义、调用方法。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Demo_Ref
{
class Program
{
static void Main(string[] args)
{
int x = 10, y = 20;
Console.WriteLine("交换之前的数据:");
Console.WriteLine("x={0},y={1}",x,y);
SwapByValue(x, y);
Console.WriteLine("调用SWapByValue(x,y);函数之后的数据:");
Console.WriteLine("x={0},y={1}", x, y);//并没有交换x,y的值
SwapByRef(ref x, ref y);
Console.WriteLine("调用SWapByRef(ref x,ref y);函数之后的数据:");
Console.WriteLine("x={0},y={1}", x, y);//已经交换了x,y的值
Console.ReadKey();
}
public static void SwapByValue(int a, int b) //a,b为值类型参数
{
int t = a;
a = b;
b = t;
}
public static void SwapByRef(ref int a, ref int b)//a,b为引用类型参数
{
int t = a;
a = b;
b = t;
}
}
}
4、演示DEMO源代码在github上的仓库地址:
https://github.com/xieyunc/csharp_teach.git