一、C#中的注釋
不寫注釋是流氓
名字瞎起是扯淡
1、注釋符作用
- 注釋:解釋說明代碼的作用
- 注銷:注銷的代碼不會(huì)被執(zhí)行
2、C#的三種注釋
- 單行注釋 //
- 多行注釋 /**/
- 文檔注釋 /// 多用來解釋類或方法
二、vs中常用的快捷鍵
- crl+k+d:快速對(duì)其代碼
- ctrl+z:撤銷
- ctrl+s:保存
- ctrl+j:彈出智能提示
- ctrl+k+c注釋所選代碼
- ctrl+k+u取消對(duì)所選代碼的注釋
- f1:轉(zhuǎn)到幫助人當(dāng)
- 啊#Region和#EndRegion:折疊冗余代碼
三、變量
1、變量的存儲(chǔ)

變量和地址

變量的命名
2、變量的類型
語(yǔ)法:變量類型 變量名=值
- int
- double
- string
- char
- decimal:金錢類型,后面要加m,decimal m=500m
四、運(yùn)算符
- =:賦值運(yùn)算符
- +:連接兩個(gè)字符串,或者做運(yùn)算
- -:減法運(yùn)算
- /:除法運(yùn)算
- *:乘法運(yùn)算
- %:取余數(shù)
五、類型轉(zhuǎn)換
//隱式轉(zhuǎn)換
int num=100;
double d=num;
//強(qiáng)制轉(zhuǎn)換
double d=1.1;
int i=(int)d;
六、異常捕獲
try{
//可能出現(xiàn)異常的代碼
}catch{
//出現(xiàn)異常后執(zhí)行的代碼
}
七、枚舉
枚舉就是一種變量類型
語(yǔ)法
[public] enum 枚舉名{
值1,值2,值3,······
}
- public:修飾符
- enum:關(guān)鍵字,聲明枚舉
小實(shí)例
using System;
namespace day_01_1
{
//將枚舉聲明到命名空間下面,類上面,這個(gè)命名空間所有類都可以使用
//枚舉就是一種變量類型
public enum Gender {
男,
女,
}
class Program
{
static void Main(string[] args)
{
//使用枚舉
Gender gender = Gender.女;
Console.WriteLine(gender);
Console.ReadKey();
}
}
}

運(yùn)行結(jié)果
八、枚舉和int 和String之間的轉(zhuǎn)換
1、枚舉轉(zhuǎn)換成int和string
using System;
namespace day_01_1
{
//將枚舉聲明到命名空間下面,類上面,這個(gè)命名空間所有類都可以使用
//枚舉就是一種變量類型
public enum QQState {
OnLine,
OffLine,
Leave,
Busy,
QMe,
}
class Program
{
static void Main(string[] args)
{
//使用枚舉 枚舉默認(rèn)從0開始 這樣輸出為1
//枚舉轉(zhuǎn)換成int
QQState state = QQState.OffLine;
int n = (int)state;
Console.WriteLine(n);
//枚舉轉(zhuǎn)換成string
string n2 = state.ToString();
Console.WriteLine(n2);
Console.ReadKey();
}
}
}

運(yùn)行結(jié)果
2、int和string轉(zhuǎn)換成枚舉
using System;
namespace day_01_1
{
//將枚舉聲明到命名空間下面,類上面,這個(gè)命名空間所有類都可以使用
//枚舉就是一種變量類型
public enum QQState {
OnLine,
OffLine,
Leave,
Busy,
QMe,
}
class Program
{
static void Main(string[] args)
{
//將s轉(zhuǎn)換成枚舉類型
//轉(zhuǎn)換成int的方法Convert.ToInt32() interesting.parse() int.TryParse()
string s = "0";
//調(diào)用Parse()目的就是將字符串轉(zhuǎn)換成對(duì)應(yīng)的枚舉類型
//轉(zhuǎn)換不了拋異常
QQState state1= (QQState)Enum.Parse(typeof(QQState),s);
Console.WriteLine(state1);
Console.ReadKey();
}
}
}

運(yùn)行結(jié)果
九、結(jié)構(gòu)
一次幫我們生成多個(gè)變量
語(yǔ)法
public struct 結(jié)構(gòu)名
{
成員;//變量
}
例子
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace day01_2
{
//聲明結(jié)構(gòu)
public struct Person {
public string name;
public int age;
public char gender;
public int grade;
}
class Program
{
static void Main(string[] args)
{
//xx大學(xué)管理系統(tǒng)
//姓名,性別,年齡,年級(jí)
//string zsName = "張三";
//int zsAge = 21;
//char zsGender = '男';
//int zsGrade = 3;
//聲明結(jié)構(gòu)變量
Person zsPerson;
zsPerson.age = 21;
zsPerson.name = "張三";
zsPerson.gender = '男';
zsPerson.grade = 3;
Console.WriteLine("姓名:{0}\n年齡:{1}\n性別:{2}\n班級(jí):{3}",zsPerson.name,zsPerson.age,zsPerson.gender,zsPerson.grade);
Console.ReadKey();
}
}
}

運(yùn)行結(jié)果
十、方法的三個(gè)高級(jí)參數(shù)和重載、遞歸
1、out
寫一個(gè)方法求一個(gè)數(shù)組中的最大值,最小值,總和、平均值,返回多個(gè)相同類型的值可以用數(shù)組,如果返回多個(gè)不同類型的值可以使用out
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//寫一個(gè)方法求一個(gè)數(shù)組中的最大值,最小值,總和、平均值
int[] num = {1,2,3,4,5,6,7,8,9 };
//將值放在數(shù)組中
Console.WriteLine("返回?cái)?shù)組求值:");
int[] res = getMaxMinSumAvg(num);
Console.WriteLine("最大值{0},最小值{1},總和{2},平均值{3}", res[0],res[1],res[2],res[3]);
//out返回值
int max = 0;
int min = 0;
int sum = 0;
int avg = 0;
Test(num, out max, out min, out sum, out avg);
Console.WriteLine("out返回值:");
Console.WriteLine("最大值{0},最小值{1},總和{2},平均值{3}", max, min, sum, avg);
Console.ReadKey();
}
/// <summary>
/// 返回?cái)?shù)組方法求一個(gè)數(shù)組中的最大值,最小值,總和、平均值
/// </summary>
/// <param name="nums"></param>
/// <returns></returns>
public static int[] getMaxMinSumAvg(int [] nums) {
int[] res = new int[4];
//假設(shè)res[0]最大值 res[1]最小值 res[2]總和 res[3]平均值
res[0] = nums[0];
res[1] = nums[0];
res[2] = 0;
for (int i=0;i<nums.Length; i++) {
//如果循環(huán)的元素比最大的大就放進(jìn)最大值
if (nums[i] > res[0])
{
res[0] = nums[i];
}
else if(nums[i]<res[1]){
//如果循環(huán)的元素比最小的小就放進(jìn)最小值
res[1] = nums[i];
}
//求總和
res[2] += nums[i];
}
//平均值
res[3] = res[2] / nums.Length;
return res;
}
/// <summary>
/// out返回一個(gè)數(shù)組中的最大值,最小值,總和、平均值
/// </summary>
/// <param name="num"></param>
/// <param name="max"></param>
/// <param name="min"></param>
/// <param name="sum"></param>
/// <param name="avg"></param>
public static void Test(int[] nums, out int max, out int min, out int sum, out int avg)
{
//out要求在方法內(nèi)部為其賦值
max = nums[0];
min = nums[0];
sum = 0;
for (int i = 0; i < nums.Length; i++)
{
//如果循環(huán)的元素比最大的大就放進(jìn)最大值
if (nums[i] > max)
{
max = nums[i];
}
else if (nums[i] < min)
{
//如果循環(huán)的元素比最小的小就放進(jìn)最小值
min = nums[i];
}
//求總和
sum += nums[i];
}
avg = sum / nums.Length;
}
}
}

運(yùn)行結(jié)果
2、ref
能將一個(gè)參數(shù)帶進(jìn)方法進(jìn)行改變,將改變后的值帶出方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace day_01_4
{
class Program
{
static void Main(string[] args)
{
double salary = 5000;
jiangjin(ref salary);
Console.WriteLine(salary);
Console.ReadKey();
}
public static void jiangjin(ref double s) {
s += 500;
}
}
}

運(yùn)行結(jié)果
3、params
可變長(zhǎng)度參數(shù),將實(shí)參列表中跟可變參數(shù)元素一致的元素當(dāng)做數(shù)組來處理
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace day_01_5
{
class Program
{
static void Main(string[] args)
{
//params可變參數(shù)數(shù)組
Test(1, 2);
Test(1, 2, 3, 4);
Console.ReadKey();
}
public static void Test(params int[] score) {
int sum = 0;
for (int i = 0; i < score.Length;i++) {
sum += score[i];
}
Console.WriteLine(sum);
}
}
}

運(yùn)行結(jié)果
4、方法的重載
方法的重載就方法的名稱相同參數(shù)不同
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace day_01_5
{
class Program
{
static void Main(string[] args)
{
m1(1);
m1(1, 2);
m1(1, 2, 3);
Console.ReadKey();
}
//重載
public static void m1(int n1) {
Console.WriteLine(n1);
}
public static void m1(int n1,int n2)
{
Console.WriteLine(n1+n2);
}
public static void m1(int n1,int n2,int n3)
{
Console.WriteLine(n1+n2+n3);
}
}
}

運(yùn)行結(jié)果
5、方法的遞歸
方法自己調(diào)用自己
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace day_01_5
{
class Program
{
static void Main(string[] args)
{
//方法的遞歸
TellStoty();
Console.ReadKey();
}
//講10遍故事
public static int i = 0;
public static void TellStoty() {
Console.WriteLine("從前有座山");
Console.WriteLine("山里有座面");
Console.WriteLine("廟里有個(gè)老和尚和一個(gè)小和尚");
Console.WriteLine("老和尚給小和尚講故事");
i++;
if (i >= 10) {
return;
}
TellStoty();
}
}
}

運(yùn)行結(jié)果