曾瑛C#教程笔记2

zy17
枚举结构体
枚举
enum 类型名 {枚举项}
定义在类外面
enum WeekDays{Sunday,Monday,Tuesday,Wednesday,Thuresday,Friday,Saturday}
Main()函数里面写
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
}
结构体
定义在类外面
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("学号:"+wjl.number);
Console.WriteLine("学号:"+zy.number);
Console.WriteLine("姓名:"+wjl.name);
Console.WriteLine("姓名:"+zy.name);
zy18
数组
int[] scores= {120,140,112,133};
元素类型 数组名称 初始列表值
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];
}
声明数组而不初始化
string[] names =new string[3];
names[0]="小明";
names[1]="里斯";
names[2]="王五";
string[] names =new string[3]{"1","2","3"};
数组不可以是动态的 c++中可以
foreach(string name in names){
Console.WriteLine(name);
}
zy19
二维数组
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);
可变数组
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
函数
写在类里面
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 函数名(参数列表)
静态 返回类型
函数命名方式:首字母全部大写
return语句可以返回表达式
函数可以没有返回值void
可以有多个return,先执行到那个那个起作用
zy21
函数参数
值传递
类里面定义
static double Bigger(double x,double y)//形式参数
{//形参的变化不会影响实参
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);
地址传递形参实参一起变化
类里面定义
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);
}
数组等复杂类型应用地址传递
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
引用型参数
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
输出型参数
ref传入函数前必须赋值
out传入函数前不需要赋值,赋值了也会被忽略
static double CalculateCircle(double r,out double c){
c=2
Math.PIr;
double s=Math.PI
rr;
return s;
}
Main()
double r=156;
double zhouchang;
double area=CalculateCircle(r,out zhouchang);
Console.WriteLine("周长为:{0},面积为{2}",zhouchang,area);
参数匹配,可以隐士转换
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);//经过隐式转换匹配
string radius3="100";
double volume2=VolumeofSpheroid(redius3);//不匹配,需要显式转换
zy22
函数递归
static int Fac(int n){
if(n<=1){
return 1;
}
else{
return n
Fac(n-1);//递归关系
}
}
斐波那契数列
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
局部变量
函数内的变量
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

封装
接口
对象
zy25
定义类和创建对象
新建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("我已经捉住了{0}只老鼠",miceCount);
}

}
实例化
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梦";
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("我已经捉住了{0}只老鼠",miceCount);
}

}
Cat Kitty=new Cat();//构造函数
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();
带参数构造函数
class Cat
{
public string name;//字段
public int age;
private int miceCount=0;
//有参数的构造函数
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("我已经捉住了{0}只老鼠",miceCount);
}

}
Cat Kitty=new Cat("Kitty",3);//构造函数
Console.WriteLine(Kitty.name);
Console.WriteLine(Kitty.age);
Kitty.Meow();
Kitty.ChaseMice();
zy27
析构函数垃圾回收以及类的实例
class Cat
{
private string name;
private int age;
public Cat(string nameValue,int ageValue){
name=nameValue;
age=ageValue;
Console.WriteLine("一只猫诞生了");
}
~Cat(){//析构函数
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(),强制执行垃圾回收机制
class Time
{
private int hour;
private int minute;
private int second;
private void SetTime(int h,int m,int s)
{
//属性值默认大写
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小时制:"+time1.ToString12());
Console.WriteLine("time1 24小时制:"+time1.ToString24());
Console.WriteLine("time2 12小时制:"+time2.ToString12());
Console.WriteLine("time2 24小时制:"+time2.ToString24());
Console.WriteLine("time3 12小时制:"+time3.ToString12());
Console.WriteLine("time3 24小时制:"+time3.ToString24());

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,240评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,328评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,182评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,121评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,135评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,093评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,013评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,854评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,295评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,513评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,398评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,989评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,636评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,657评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容