.net平台 C#入门知识,C#可以做什么

128 阅读5分钟

.net

  • .net平台
  • .net farmework 框架 .net FameWork 框架是 .net平台不可缺少的一部分,提供了一个稳定的运行环境来保证我们基于 .net 平台开发的各种应用能够正常运转,(java 与 Sptingboot的关系)

.net 开发方向

  • 开发winform (桌面引用程序)
  • Internet 应用程序 ASP.NET
  • 手机开发
  • Unity 3D游戏开发或则虚拟现实

交互模式

  • C/S 客户机client/服务器模式(server)
  • B/S 浏览器Browser/服务器模式

C#文件 作用

//C#命名不能以数字开头,每行代码必须以;结尾
using System;
/*
 最上面的use XXX 为引用项目名称
​
命名空间
{
class类
Main 函数是程序的主入口  你写的代码想要执行必须要写在Main函数当中
​
.Sin:解决方案文件,包含所有解决方案的信息,查看代码直接双击.Sin
.csProj:项目文件,里面包含着项目信息,可以双击打开
​
}
 */namespace _01_My_First_Demo
{
    class Program
    {
        static void Main(String[] args)
        {
            Console.WriteLine("Hello world");
            Console.ReadKey();
        }
    }
}
//类当中,存储信息、

VS中常用快捷键

  • Ctrl + K + D 快速对齐代码 //存在错误,无法对齐
  • Ctrl + Z 撤销
  • Ctrl + J 快速弹出智能提示
  • Ctrl + K + C 注释所选代码
  • Ctrl + K + U 取消对代码的注释
  • Shift + END、Shift + Home
  • F1 转到帮助文档
  • #Region 和 #EndRegion 折叠冗余代码

变量

  • 在计算机中存储数据
//变量类型  变量名
//变量名  = 值;
// 类似于 java 先声明再赋值
int number;
  • 红色波浪线: 意味代码中语法出现错误;
  • 绿色波浪线: 意味可能出现了错误;

赋值运算符

  • = : 表示把等号右边的值赋值给等号左边变量
    • :表示变量值相加
    • :表示变量值相减

数组

  • 数组的定义
/*
* 结构可以帮助我们一次性声明多个不同类型的变量
* 数组:可以一次性声明多个同类型变量
*/
   int[] nums = new int[10] {}; // 实例化声明
    string[] names = { "张三","李四","王五","麻六","赵七" };; //自定义 
  • 数组的方法
int[] nums = new int[] { 1, 2, 6, 5, 4, 3, 1, 9, 8, 7 };
Array.Sort(nums); //针对数组做升序排列
Array.Reverse(nums);

方法

  • 函数就是将一堆代码进行重用的一种机制
     //函数的语法
     //       public static 返回值类型 方法名 ([参数列表])
     //       { 
     //           方法体
     //       }
    //例子
            public static int GetMax(int n1, int n2)
        {
            return n1 > n2?n1 : n2;
        }
  • public 访问修饰符,公开的、公共的、哪儿都可以访问
  • static 静态的
  • 返回值类型 返回值类型是什么就写什么,void代表没有返回值
  • 方法名 Pascal 每个单词的首字母都大写,其余字母小写
  • 参数列表:完成这个方法所必须要提供给这个方法的条件
  • 方法的调用,类名.方法名 int max = Program.GetMax(1,3);
  • 在某些情况下,类名是可以神略的,如果写的方法与Main在同一个类中

方法中的三个高级参数

  • out 、ref、params
out方法
    //out参数
    //作用: 侧重于在一个方法中可以返回多个不同类型的值
    /*使用方法:
    1.首先在新参中定义out 参数
    2.传入的时候,进行定义,再用out传参
    3.
    */  
    //方法
    public static void TestOut(int[] nums, out int max, out int min, out int sum, out int avg)
        {
            {
                max = nums[0];
                min = nums[0];
                sum = 0;
                for (int i = 0; i < nums.Length; i++)
                {
                    if (max < nums[i])
                    {
                        max = nums[i];
                    }
                    if (min > nums[i])
                    {
                        min = nums[i];
                    }
                    sum += nums[i]; //总数
                }
                avg = sum / nums.Length;
                // return res;
            }
        }
        
        //调用
                public static void Main(string[] args)
        {
            //写一个方法,求一个数组中的最大值、最小值、总和、平均值
            int[] numbers = { 1, 2, 5, 7, 9, 6, 1, 5, 3, 15, 16, -4 };
            int Max = 0;
            int Min = 0;
            int Totol = 0;
            int agv = 0;
            TestOut(numbers,out Max,out Min, out Totol, out agv);
            Console.WriteLine(Max);
            Console.WriteLine(Min);
            Console.WriteLine(Totol);
            Console.WriteLine(agv);
            Console.ReadKey();
        }
    
ref方法
  • 作用:能够将一个变量带入一个方法中进行改变,方法新参中加ref,自动返回这个变量;
  • 要求:ref参数要求必须在函数外赋值,函数内可以不赋值直接调用;
       int a = 18;
       int b = 26;
       ChangePosition(ref a, ref b);
       
               //使用ref参数
        public static void ChangePosition(ref int a , ref int b) {
            b = a - b;  
            a = a - b;
            b = a + b;
        }
params 可变参数
  • 作用:将实参列表中类型一样的数据处理到一起;
  • parmas参数必须是形参列表的最后一个参数;

复习

  • 常量 const int numer = 10; //加一个const 表明声明的常量
  • 枚举类型
public enum Gender //定义枚举类型,使用修饰符enum
        {
            男,
            女
        }
       
        {
            // 常量  命名时加一个const
            const int numer = 10;
​
            Gender gender = Gender.男;
            //enum枚举转换成string字符串类型:
            //enum_name.枚举值。ToString();
            Console.WriteLine(gender.ToString());
            
            string s = "男";
            Console.WriteLine("这是将字符串转换为枚举   {0}",(Gender)Enum.Parse(typeof(Gender), s));
        }
  • 结构

    • 结构的修饰符为struct
        //定义结构
        public struct Person
        { 
            public string _name;
            public int _age;
            public Gender _gender;
        }
        
        //使用
        Person zsPerson;
        zsPerson._name = "张三";
        zsPerson._age = 20;
        zsPerson._gender = Gender.男;
  • 方法:在C#中也有作用域,一对{}就是一个作用域;

    • 可以使用静态变量来模拟全局变量
    class Program
    {
        public static int _number = 10;
        public static void Main(string[] args)
        {}
    }
    • 不管是形参还是实参,都是在内存中
    • 方法的功能一定要单一
    • 不要出现提示用户输入的字

方法的重载

  • 原因:方法太多,每次调用非常麻烦
  • 作用:解决了大量方法,定义调用麻烦的问题;
  • 概念:指的是方法的名称相同,但是参数不同;
  • 方法的返回值与重载没有关系,
  • 后成重载的条件,参数类型不同或者参数的个数不同

方法的递归

  • 方法自己调用自己
  • 例子:找到一个文件夹中所有的文件
  • 一个方法,找到一个指定的文件夹下所有的文件
  • Main方法在自身没有办法调用自己