c#基础1

安装vs

下载及破解

  1. Visual Studio 2022下载地址:

Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器

如下图:

建议:装Visual Studio Exterprise2022企业版这个版本功能比较全。

c#基础1_第1张图片

 安装重要提示:

c#基础1_第2张图片

c#基础1_第3张图片

  1. Visual Studio 2022专业版永久密钥:

VS 2022 Enterprise:VHF9H-NXBBB-638P6-6JHCY-88JWH

VS 2022 Professional:TD244-P4NB7-YQ6XK-Y8MMM-YWV2J

第一个命令行工程

项目平台

.net Framework的第一个版本发布于2002年, .NET Framework 是以一种采用系统虚拟机运行的编程平台,以通用语言运行库(Common Language Runtime)为基础,支持多种语言(C#、VB、C++、Python等)的开发

net core第一个版本在2016年推出  net core有支持跨平台(Windows,Mac OSX,Linux)能力的应用程序开发框架

项目创建命名:

建议使用公司名+项目名称  最好不要使用中文

解决方案名称可以和项目一致(后期有需要可以修改)

项目结构分析:

//项目的文件列表
//1.程序集信息文件(了解)
//如何查看程序集信息
//(1)AssemblyInfo 查看
//(2)程序集信息查看
//(3)程序编译通过的程序集文件查看
//2.引用
//当前项目中可以使用 的系统默认模块,
//自己写的模块或者第三方提供的模块
//3.App.config配置文件(了解)
//项目的框架 等配置信息 ,项目需要使用的特点数据信息
//获取配置文件信息
//(1)在引用中导入Configuration
//(2)引入Configuration模块
//(3)使用ConfigurationManager管理程序配置的功能类

 
    
    
  




using System.Configuration;  // 1.在引用中导入Configuration 2.引入Configuration模块
namespace ConsoleApp_app.config
{
    internal static class AppSettingConfig
    {

        public  static string resultValue = ConfigurationManager.AppSettings["MyConfigString"].ToString();
        public static string resultValue1 = ConfigurationManager.AppSettings["Name"].ToString();
        
    }
}

//4.程序入口文件  Program.cs
//程序执行的开始
// //class  类  Program
// Main 入口函数
//入口文件 --> 入口类 -->入口函数
//入口函数 作用:程序执行后自动执行   其他函数一般都要调用后才能执行

// 5.解决方案和项目
//(1).解决方案和项目都是VS提供的用于管理应用程序的容器
//(2).一个解决方案可以包含一个或多个项目.
//(3).这些项目可以利用解决方案 连接在一起 统一编译统一更新
//(4). sln和.csproj文件
//.sln:解决方案文件,里面包含着整个解决方案的信息,可以双击运行。
//.csproj:项目文件,里面包含着这个项目的信息,可以双击运行。

    6. debug和release

        //1.debug调试  用来运行程序 观察程序执行过程  排查程序错误  不作为正式发布使用  可以使用断点调试功能
    //2.release发布  把调试好的程序 通过relase编译  程序更加轻量 ,并做了优化

 3.点击快捷键F5 或者点击绿色箭头 启动

 4.断点调试      当需要对程序的执行过程进行逐步观察时(或者在排错时)使用断点调试

7.程序集:

1.当程序经过debug或者release 编译程序后得到的 项目文件 

2.格式一般为·dll或者是·exe

3.一个项目在编译后就是一个程序集

8. .net支持混合语言开发
   

    //不同语言模块集成到同一个项目里 例如vb和c#语言
   //都被编译成了MSIL(微软中间语言) 通过ildsm.exe工具观察

路径:"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\ildasm.exe"

   

VB代码:

Public Class TestVB
    Public Function Add(ByVal a As Integer, ByVal b As Integer) As Integer
        Return a + b
    End Function

End Class


C#代码

 public class TestC
    {
        public int Add(int a, int b) { 
            return a + b;
        }
    }


入口类调用混合编码
    static void Main(string[] args)
        {
            //在c#代码中,每行代码的结束,我们都以分号结束,且是在英文输入法下
            zhiyou.day1_1CSharp.TestC testC  =new day1_1CSharp.TestC();
            testC.Add(1, 2);
           
            TestVB testVB = new TestVB();
            testVB.Add(1, 2);

           
        }

9.为什么可以混合代码开发

1.CLR英文全称Common Language Runtime,即公共语言运行时  是.net

2.CLR为不同的编程语言提供了统一的运行平台,对于开发者来说,他们无需考虑平台运行问题,无论使用什么语言开发,最终都会编译成CIL

4.CIL(公共中间语言,COmmon Intermediate Language)。不同的高级语言最终会转化成CIL

5.CLR的主要目标就是为了让编程更简单,让开发者专注于直接需求

c#基础1_第4张图片

 CLR 总结 (了解)

CLR提供了:

1、一个支持GC的虚拟机,该虚拟机有自己的一套指令集,即CIL(公共中间语言,COmmon Intermediate Language)。高级语言最终会转化成CIL,

2、一种丰富的元数据表示,用来描述数据类型、字段、方法等。通过这些统一的描述方法来生成对应的程序。

3、一种文件格式,一种专属的不于操作系统和硬件绑定的格式,即跨平台。

4、一套类库,提供了垃圾回收、异常、泛型等基本功能,提供了字符串、数组、列表、字典等数据结构,提供了文件、网络、交互等操作系统功能。

5、一系列规则,定制了在运行时如果查找引用其他文件、生命周期等一系列规则。
 

  10.命名空间和类

   //命名空间
    含义:命名空间是C#组织代码的方式 通常来管理类的方式
    分类:系统命名空间和自定义命名空间
    关键字:namespace
    using关键字:用来引用其他命名空间。不同项目系统会自动添加不同的命名空间
    特点:

    不能以数字特殊符号开头 不建议使用中文

     一个项目中可以 根据需要定义多个命名空间
    一个命名空间下 可以有多个类 . 可以解决多个类名字相同的冲突问题
   

    //类
    //含义:类也是C#组织代码的方式 通常来管理具体数据的方式
    分类:系统类 和自定义类
    关键字:class
    特点:类要放在命名空间中
    包含:字段 属性  方法  构造函数 析构函数   事件 等..

      ///一. C#的3种注释符


    /// 单行注释 //
    /// 多行注释 /*要注释的内容*/
    /// 文档注释  多用来解释类或者方法
    ///  折叠冗余代码:#Region 和#EndRegion
    ///

    /// 二.VS的常用快捷键
   

   /// Ctrl+K+D:快速对齐代码
    /// Ctrl+K+C:注释所选代码
    /// Ctrl+K+U:取消对所选代码的注释
    /// F1:转到帮助文档
  
   

    /// 三.1.标识符

        

标识符

标识符是用来识别类、变量、函数或任何其它用户定义的项目。在 C# 中,类的命名必须遵循如下基本规则:

  • 标识符必须以字母、下划线或 @ 开头,后面可以跟一系列的字母、数字( 0 - 9 )、下划线( _ )、@。
  • 标识符中的第一个字符不能是数字。
  • 标识符必须不包含任何嵌入的空格或符号,比如 ? - +! # % ^ & * ( ) [ ] { } . ; : " ' / \。
  • 标识符不能是 C# 关键字。除非它们有一个 @ 前缀。 例如,@if 是有效的标识符,但 if 不是,因为 if 是关键字。
  • 标识符必须区分大小写。大写字母和小写字母被认为是不同的字母。
  • 不能与C#的类库名称相同。


   

     /// 四.C# 关键字

c#基础1_第5张图片
  

 /// 五.数据类型:

    /// 数据类型分类
    /// C#数据类型分为两大类:值类型和引用类型
    /// 整型类型 浮点型  字符型  布尔类型  struct( 结构 )、 enum(枚举 )
    /// 字符串,类、接口、数组、集合,委托为引用类型

  c#基础1_第6张图片

 // 整数类型, 对应各种不同的取值范围,整数类型一共有八种
            //位(bit):也叫比特,是计算机存储数据的最小单位,表示一个二进制位
            //字节:计算机存储数据的单位,一字节等于八位
            //有无符号:表示可否存储负数,有符号表示可以存储负数,无符号则只能存储正数
            //8种不同的整数类型  
            byte byteValue = 1;
            sbyte sbyteValue = -1;
            short shortValue = -1;
            ushort ushortValue = 1;
            int intValue = -1; // 对应c#  System.Int32结构   详解 c#数据类型对应的.Net结构图5.PNG
            uint uintValue = 1;
            //c语言中,long类型是4个字节,但在C#中为8个字节
            long longValue = -1;
            ulong ulongValue = 1;
            //可以使用 sizeof 方法。表达式 sizeof(type) 
            //产生以字节为单位存储对象或类型的存储尺寸
            Console.WriteLine("{0},{1}", sizeof(ulong), ulongValue);

            //2 浮点数类型
            //小数类型被称为浮点数类型,浮点数类型一共有三种。
            //float:单精度浮点数,占4个字节
            //double:双精度浮点数,占8个字节
            //decimal:精确的十进制数值,占16个字节
            float floatValue = 3.141592699999f;//float后加上f  ,float即可精确到小数点后7位
            Console.WriteLine(floatValue); 
            double doubleValue = 3.14159269998876543; //double可精确到小数点后15位。
            Console.WriteLine(doubleValue);
            decimal decimalValue = 3.141592612345678901234567m;//decimal类型后加上m  保留精准位数
            Console.WriteLine(decimalValue); 
            Console.WriteLine("{0},{1}", sizeof(decimal), decimalValue);


            //字符类型
            //特点:只能存放一个字符或者一个汉字   用单引号表示 c#中占2字节  
            char charValue = 'a';
            Console.WriteLine("{0},{1}", sizeof(char), charValue);
            //涉及到计算机如何保存一个字符,比如字母’a,那么是如何存储字母的呢?//图ASCII图5.png


            //结构体  枚举 后续讲


            //
            //字符串
            //特点:引用类型   可以存储多个字符 
            //表示方式:
            //字符串(string)类型是 System.String 类的别名。
            string str = "runoob.com";  //单行显示
            //@ 字符串中可以任意换行,换行符及缩进空格都计算在字符串长度之内。 
            string str21
                = @"";


            //特殊字符串 --转义字符 
            // @将转义字符(\)当作普通字符对待
            string str1 = @"C:\nWindows";
            Console.WriteLine(str1);
            string str2 = "wwww\\naaaa";
            Console.WriteLine(str2);

            //字符串是特殊的引用类型
            //特殊原因:字符串赋值时 和值类型数据赋值是深拷贝
            //后续引用类型 赋值是浅拷贝
            int number1 = 10;
            int number2 = number1;
            number1 = 20;
            Console.WriteLine("number1:{0},numebr2:{1}",number1,number2);


            string temp1 = "abc";
            string temp2 = temp1;
            temp1 = "xxx";
            Console.WriteLine("temp1:{0},temp2:{1}",temp1,temp2);


            //布尔类型
            //包含两个值 true 和false  后续进行条件判断时 常用
            bool boolValue = false;
            bool bool2Value = true;
            //日期类型 
            DateTime dateTimeValue = DateTime.Now;
            Console.WriteLine(dateTimeValue);

            //类、接口、数组、集合,委托等后续讲
            

            Console.ReadLine();

你可能感兴趣的:(c#,ide,开发语言)