zy17
枚舉結(jié)構(gòu)體
枚舉
enum 類型名 {枚舉項(xiàng)}
定義在類外面
enum WeekDays{Sunday,Monday,Tuesday,Wednesday,Thuresday,Friday,Saturday}
Main()函數(shù)里面寫
WeekDays today=WeekDays.Sunday;
if((today==WeekDays.Saturday)||(today=WeekDays.Sunday)){
Console.WriteLine("休息");
}
else{
Console.WriteLine("工作");
}
WeekDays today;
today=(WeekDays)3;
Console.WriteLine(today);//Wed
WeekDays today;
today=WeekDays.Sunday;
Console.WriteLine((int)today);//0
WeekDays today;
today=WeekDays.Sunday+2;
Console.WriteLine(today);//周二
enum WeekDays:int//byte sbyte short ushort int uint long ulong
{
Sunday=5,
Staurday //6
}
結(jié)構(gòu)體
定義在類外面
struct Student{
//必須加public否則外部不能訪問
public int number;
public string name;
public string sex;
public string birthday;
}
Main()
Student wjl;
wjl.number=2015;
wjl.name="吳家亮";
wjl.sex="男";
wjl.birthday="2000-1-1";
Student zy;
zy.number=2016;
zy.name="曾瑛";
zy.sex="男";
zy.birthday="1997-1-1";
Console.WriteLine("學(xué)號(hào):"+wjl.number);
Console.WriteLine("學(xué)號(hào):"+zy.number);
Console.WriteLine("姓名:"+wjl.name);
Console.WriteLine("姓名:"+zy.name);
zy18
數(shù)組
int[] scores= {120,140,112,133};
元素類型 數(shù)組名稱 初始列表值
int[] scores={120,140,112,133,127};
scores[0]=110;
int sum=scores[0]+scores[1]+scores[2]+scores[3]+scores[4];
int sum=0;
for(int i=0;i<scores.Length;i++){
sum+=scores[i];
}
聲明數(shù)組而不初始化
string[] names =new string[3];
names[0]="小明";
names[1]="里斯";
names[2]="王五";
string[] names =new string[3]{"1","2","3"};
數(shù)組不可以是動(dòng)態(tài)的 c++中可以
foreach(string name in names){
Console.WriteLine(name);
}
zy19
二維數(shù)組
int[,] erwei={{1,2,3},{4,5,6},{7,8,9}};
int[,] erwei=new int[3,3]{{1,2,3},{4,5,6},{7,8,9}};
int sum=0;
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
Console.WriteLine(erwei[i,j]);
sum+=erwei[i,j];
}
}
Console.WriteLine(sum);
int[,] erwei=new int[3,3]{{1,2,3},{4,5,6},{7,8,9}};
int sum=0;
foreach(int number in erwei){sum+=number;}
Console.WriteLine(sum);
可變數(shù)組
int[][] kebian=new int[2][]
行列
kebian [0]=new int[3]{1,2,3};
kebian [1]=new int[4]{1,2,3,4};
foreach(int element in kebian[0]){
Console.WriteLine(element);
}
foreach(int element in kebian[1]){
Console.WriteLine(element);
}
int[][] kebian=new int[2][]{new int[3]{1,2,3},new int[4]{1,2,3,4}};
foreach(int[] line in kebian){
foreach(int element in line){
Console.WriteLine(element);
}
}
zy20
函數(shù)
寫在類里面
static string/返回類型值/ CaculateWeekDay(int y,int m,int d)/方法/{
if(m==1||m=2){
m+=12;
y--;
}
int week=(d+2m+3(m+1)/5+y+y/4-y/100+y/400+1)%7;
string weekString="";
switch(week){
case 0:weekString="星期日";break;
case 1:weekString="星期一";break;
case 2:weekString="星期二";break;
case 3:weekString="星期三";break;
case 4:weekString="星期四";break;
case 5:weekString="星期五";break;
case 6:weekString="星期六";break;
default:break;
}
//Console.WriteLine(weekString);
return weekString;
}
Main()
string week=CaculateWeekDay(2018,9,9)
Console.WriteLine(week);
static string 函數(shù)名(參數(shù)列表)
靜態(tài) 返回類型
函數(shù)命名方式:首字母全部大寫
return語句可以返回表達(dá)式
函數(shù)可以沒有返回值void
可以有多個(gè)return等曼,先執(zhí)行到那個(gè)那個(gè)起作用
zy21
函數(shù)參數(shù)
值傳遞
類里面定義
static double Bigger(double x,double y)//形式參數(shù)
{//形參的變化不會(huì)影響實(shí)參
double maxValue=(x>y)?x:y;
return maxValue;
}
Main()
double a,b,result;
a=Convert.ToDouble(Console.Read());
b=Convert.ToDouble(Console.Read());
result=Bigger(a,b);
Console.WriteLine(result);
地址傳遞形參實(shí)參一起變化
類里面定義
static void Dou(int[] array)
{
for(int i=0;i<array.Length;i++){
array[i]=2array[i]
}
}
Main()
int[] numbers={1,2,3,4,5};
Console.Write("Before:");
foreach(int number in numbers){
Console.WriteLine(number);
}
Dou(numbers);
Console.Write("After:");
foreach(int number in numbers){
Console.WriteLine(number);
}
數(shù)組等復(fù)雜類型應(yīng)用地址傳遞
static void Swap(int x,int y){
int temp=x;
x=y;
y=temp;
}
Main()
int a=40;
int b=80;
Console.WriteLine("交換前a={0},b={1}",a,b);
Swap(a,b);
Console.WriteLine("交換后a={0},b={1}",a,b);//a=40,b=80
引用型參數(shù)
static void Swap(ref int x;ref int y){
int temp=x;
x=y;
y=temp;
}
Main()
int a=40;
int b=80;
Console.WriteLine("交換前a={0},b={1}",a,b);
Swap(ref a,ref b);
Console.WriteLine("交換后a={0},b={1}",a,b);//a=40,b=80
輸出型參數(shù)
ref傳入函數(shù)前必須賦值
out傳入函數(shù)前不需要賦值及刻,賦值了也會(huì)被忽略
static double CalculateCircle(double r,out double c){
c=2Math.PIr;
double s=Math.PIrr;
return s;
}
Main()
double r=156;
double zhouchang;
double area=CalculateCircle(r,out zhouchang);
Console.WriteLine("周長為:{0},面積為{2}",zhouchang,area);
參數(shù)匹配置侍,可以隱士轉(zhuǎn)換
static double VolumeofSpheroid(double r){
double v=(4/3)Math.PIrrr;
return v;
}
Main()
double redius1=10.86;
double volume1=VolumeofSpheroid(redius1);//匹配
int redius2=80;
double volume2=VolumeofSpheroid(redius2);//經(jīng)過隱式轉(zhuǎn)換匹配
string radius3="100";
double volume2=VolumeofSpheroid(redius3);//不匹配逆航,需要顯式轉(zhuǎn)換
zy22
函數(shù)遞歸
static int Fac(int n){
if(n<=1){
return 1;
}
else{
return nFac(n-1);//遞歸關(guān)系
}
}
斐波那契數(shù)列
static int Fibonacci(int n){
if((n==1)||(n==2)){
return 1;
}
else{
return Fibonacci(n-1)+Fibonacci(n-2);
}
}
Main()
for(int i=1;i<=n;i++){
Console.Write("{0}\t",Fibonacci(i));
if(i%5==0){
Console.WriteLine();
}
}
zy23
局部變量
函數(shù)內(nèi)的變量
static void A()
{
int x=10;
Console.WriteLine("The value x in A() is {0}",x);
}
static void B(){
int x=10;
Console.WriteLine("The value x in B() is {0}",x);
}
Main()
int x=30;
A();
B();
Console.WriteLine("The value x in Main() is {0}",x);
zy24
類
封裝
接口
對(duì)象
zy25
定義類和創(chuàng)建對(duì)象
新建cat.cs類
class Cat
{
public string name;//字段
public int age;
private int miceCount=0;
private void Hello(){//方法
Console.WriteLine("嗨,我是"+name);
}
public void Meow()
{
Hello();
Console.WriteLine("喵喵喵~~~");
}
public void ChaseMice()
{
miceCount++;
Hello();
Console.WriteLine("我已經(jīng)捉住了{(lán)0}只老鼠",miceCount);
}
}
實(shí)例化
Cat Kitty=new Cat();
Kitty.name="Kitty";
Kitty.age=3;
Console.WriteLine(Kitty.name);
Console.WriteLine(Kitty.age);
Kitty.Meow();
Kitty.ChaseMice();
Cat er=new Cat();
er.name="哆啦A夢(mèng)";
er.age=10;
Console.WriteLine(er.name);
Console.WriteLine(er.age);
er.Meow();
er.ChaseMice();
zy26
屬性
class Cat
{
public string name;//字段
private int age;
/*
public void SetAge(int ageValue)
{
if(int ageValue<0)
{age=0;}
else
{age=ageValue;}
}
public int GetAge()
{
return age;
}
//訪問器
*/
public int Age
{
get
{
return age;
}
set{
if(value<=0){
age=0;
}
else
{
age=value;
}
}
}
private int miceCount=0;
private void Hello(){//方法
Console.WriteLine("嗨,我是"+name);
}
public void Meow()
{
Hello();
Console.WriteLine("喵喵喵~~~");
}
public void ChaseMice()
{
miceCount++;
Hello();
Console.WriteLine("我已經(jīng)捉住了{(lán)0}只老鼠",miceCount);
}
}
Cat Kitty=new Cat();//構(gòu)造函數(shù)
Kitty.name="Kitty";
Kitty.Age=3;
//Kitty.SetAge(3);
Console.WriteLine(Kitty.name);
//Console.WriteLine(Kitty.GetAge());
Console.WriteLine(Kitty.Age);
Kitty.Meow();
Kitty.ChaseMice();
帶參數(shù)構(gòu)造函數(shù)
class Cat
{
public string name;//字段
public int age;
private int miceCount=0;
//有參數(shù)的構(gòu)造函數(shù)
public Cat(string nameValue,int ageValue)
{
name=nameValue;
age=ageValue;
}
public Cat()
{
name="";
age=0;
}
private void Hello(){//方法
Console.WriteLine("嗨,我是"+name);
}
public void Meow()
{
Hello();
Console.WriteLine("喵喵喵~~~");
}
public void ChaseMice()
{
miceCount++;
Hello();
Console.WriteLine("我已經(jīng)捉住了{(lán)0}只老鼠",miceCount);
}
}
Cat Kitty=new Cat("Kitty",3);//構(gòu)造函數(shù)
Console.WriteLine(Kitty.name);
Console.WriteLine(Kitty.age);
Kitty.Meow();
Kitty.ChaseMice();
zy27
析構(gòu)函數(shù)垃圾回收以及類的實(shí)例
class Cat
{
private string name;
private int age;
public Cat(string nameValue,int ageValue){
name=nameValue;
age=ageValue;
Console.WriteLine("一只貓誕生了");
}
~Cat(){//析構(gòu)函數(shù)
Consle.WriteLine("一只貓去了天堂");
}
public void ZL()
{
Console.WriteLine("我的姓名是"+name);
Console.WriteLine("我的年齡是"+age);
}
}
Main()
Cat kit=new Cat("kitty",4);
kit.ZL();
Console.WriteLine("-------------------------------");
Console.WriteLine("######################");
非托管程序
System.Gc.Collect(),強(qiáng)制執(zhí)行垃圾回收機(jī)制
class Time
{
private int hour;
private int minute;
private int second;
private void SetTime(int h,int m,int s)
{
//屬性值默認(rèn)大寫
Hour=h;
Minute=m;
Second=s;
}
public Time()
{
SetTime(0,0,0);
}
public Time(int hourValue)
{
SetTime(hourValue,0,0);
}
public Time(int hourValue,int minuteValue)
{
SetTime(hourValue,minuteValue,0);
}
public Time(int hourValue,int minuteValue,int secondValue)
{
SetTime(hourValue,minuteValue,secondValue);
}
public int Hour
{
get{return hour;}
set{hour=(value>=0&&value<=24)?value:0;}
}
public int Minute
{
get{return minute;}
set{minute=(value>=0&&value<=60)?value:0;}
}
public int Second
{
get{return second;}
set{second=(value>=0&&value<=60)?value:0;}
}
public string ToString24()
{
string output=Hour+":"+Minute+":"+Second;
return output;
}
public string ToString12()
{
int hourTemp=(Hour==12||Hour==0)?12:(Hour%12);
string AMPM=(Hour<12?"AM":"PM");
string output=hourTemp+":"+Minute+":"+Second+AMPM;
return output;
}
}
Main()
Time time1=new Time();
Time time2=new Time(22);
Time time3=new Time(22,36,30);
Console.WriteLine("time1 12小時(shí)制:"+time1.ToString12());
Console.WriteLine("time1 24小時(shí)制:"+time1.ToString24());
Console.WriteLine("time2 12小時(shí)制:"+time2.ToString12());
Console.WriteLine("time2 24小時(shí)制:"+time2.ToString24());
Console.WriteLine("time3 12小時(shí)制:"+time3.ToString12());
Console.WriteLine("time3 24小時(shí)制:"+time3.ToString24());