C#語(yǔ)法基礎(chǔ)

一、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é)果

基礎(chǔ)太簡(jiǎn)單不再贅敘

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容