C#语法基础

一、C#中的注释

不写注释是流氓
名字瞎起是扯淡

1、注释符作用
  • 注释:解释说明代码的作用
  • 注销:注销的代码不会被执行
2、C#的三种注释
  • 单行注释 //
  • 多行注释 /**/
  • 文档注释 /// 多用来解释类或方法

二、vs中常用的快捷键

  • crl+k+d:快速对其代码
  • ctrl+z:撤销
  • ctrl+s:保存
  • ctrl+j:弹出智能提示
  • ctrl+k+c注释所选代码
  • ctrl+k+u取消对所选代码的注释
  • f1:转到帮助人当
  • 啊#Region和#EndRegion:折叠冗余代码

三、变量

1、变量的存储
变量和地址

变量的命名
2、变量的类型

语法:变量类型 变量名=值

  • int
  • double
  • string
  • char
  • decimal:金钱类型,后面要加m,decimal m=500m

四、运算符

  • =:赋值运算符
  • +:连接两个字符串,或者做运算
  • -:减法运算
  • /:除法运算
  • *:乘法运算
  • %:取余数

五、类型转换

//隐式转换
int num=100;
double d=num;
//强制转换
double d=1.1;
int i=(int)d;

六、异常捕获

try{
    //可能出现异常的代码
}catch{
    //出现异常后执行的代码
}

七、枚举

枚举就是一种变量类型
语法

[public] enum 枚举名{
  值1,值2,值3,······
}
  • public:修饰符
  • enum:关键字,声明枚举

小实例

using System;

namespace day_01_1
{
    //将枚举声明到命名空间下面,类上面,这个命名空间所有类都可以使用
    //枚举就是一种变量类型
    public enum Gender {
        男,
        女,
    }
    class Program
    {
        static void Main(string[] args)
        {
            //使用枚举
            Gender gender = Gender.女;
            Console.WriteLine(gender);
            Console.ReadKey();
        }
    }
}
运行结果

八、枚举和int 和String之间的转换

1、枚举转换成int和string
using System;

namespace day_01_1
{
    //将枚举声明到命名空间下面,类上面,这个命名空间所有类都可以使用
    //枚举就是一种变量类型
    public enum QQState {
        OnLine,
        OffLine,
        Leave,
        Busy,
        QMe,
    }
    class Program
    {
        static void Main(string[] args)
        {
            //使用枚举   枚举默认从0开始 这样输出为1
            //枚举转换成int
            QQState state = QQState.OffLine;
            int n = (int)state;
            Console.WriteLine(n);
            //枚举转换成string
            string n2 = state.ToString();
            Console.WriteLine(n2);
            Console.ReadKey();

        }
    }
}

运行结果
2、int和string转换成枚举
using System;

namespace day_01_1
{
    //将枚举声明到命名空间下面,类上面,这个命名空间所有类都可以使用
    //枚举就是一种变量类型
    public enum QQState {
        OnLine,
        OffLine,
        Leave,
        Busy,
        QMe,
    }
    class Program
    {
        static void Main(string[] args)
        {


            //将s转换成枚举类型
            //转换成int的方法Convert.ToInt32() interesting.parse() int.TryParse()
            string s = "0";
            //调用Parse()目的就是将字符串转换成对应的枚举类型
            //转换不了抛异常
            QQState state1= (QQState)Enum.Parse(typeof(QQState),s);
            Console.WriteLine(state1);
            Console.ReadKey();
        }
    }
}
运行结果

九、结构

一次帮我们生成多个变量
语法

public struct 结构名
{
    成员;//变量
}

例子

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace day01_2
{
    //声明结构
    public struct Person {
        public string name;
        public int age;
        public char gender;
        public int grade;
    }

    class Program
    {
        static void Main(string[] args)
        {
            //xx大学管理系统
            //姓名,性别,年龄,年级

            //string zsName = "张三";
            //int zsAge = 21;
            //char zsGender = '男';
            //int zsGrade = 3;

            //声明结构变量
            Person zsPerson;
            zsPerson.age = 21;
            zsPerson.name = "张三";
            zsPerson.gender = '男';
            zsPerson.grade = 3;
            Console.WriteLine("姓名:{0}\n年龄:{1}\n性别:{2}\n班级:{3}",zsPerson.name,zsPerson.age,zsPerson.gender,zsPerson.grade);
            Console.ReadKey();
        }
    }
}

运行结果

十、方法的三个高级参数和重载、递归

1、out

写一个方法求一个数组中的最大值,最小值,总和、平均值,返回多个相同类型的值可以用数组,如果返回多个不同类型的值可以使用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)
        {
            //写一个方法求一个数组中的最大值,最小值,总和、平均值
            int[] num = {1,2,3,4,5,6,7,8,9 };
            //将值放在数组中
            Console.WriteLine("返回数组求值:");
            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>
        /// 返回数组方法求一个数组中的最大值,最小值,总和、平均值
        /// </summary>
        /// <param name="nums"></param>
        /// <returns></returns>
        public static int[] getMaxMinSumAvg(int [] nums) {
            int[] res = new int[4];
            //假设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++) {
                //如果循环的元素比最大的大就放进最大值
                if (nums[i] > res[0])
                {
                    res[0] = nums[i];
                }
                else if(nums[i]<res[1]){
                    //如果循环的元素比最小的小就放进最小值
                    res[1] = nums[i];
                }
                //求总和
                res[2] += nums[i];
            }
            //平均值
            res[3] = res[2] / nums.Length;
            return res;
        }
        /// <summary>
        /// out返回一个数组中的最大值,最小值,总和、平均值
        /// </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要求在方法内部为其赋值
            max = nums[0];
            min = nums[0];
            sum = 0;
            for (int i = 0; i < nums.Length; i++)
            {
                //如果循环的元素比最大的大就放进最大值
                if (nums[i] > max)
                {
                    max = nums[i];
                }
                else if (nums[i] < min)
                {
                    //如果循环的元素比最小的小就放进最小值
                    min = nums[i];
                }
                //求总和
                sum += nums[i];
            }
            avg = sum / nums.Length;
        }
    }
}

运行结果
2、ref

能将一个参数带进方法进行改变,将改变后的值带出方法

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;
        }
    }
}
运行结果
3、params

可变长度参数,将实参列表中跟可变参数元素一致的元素当做数组来处理

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可变参数数组
            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);
        }
    }
}
运行结果
4、方法的重载

方法的重载就方法的名称相同参数不同

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);
        }
    }
}

运行结果
5、方法的递归

方法自己调用自己

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("庙里有个老和尚和一个小和尚");
            Console.WriteLine("老和尚给小和尚讲故事");
            i++;
            if (i >= 10) {
                return;
            }
            TellStoty();
        }
    }
}

运行结果

基础太简单不再赘叙

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

推荐阅读更多精彩内容