C#学习笔记(入门)

系列文章目录

C#学习笔记(入门)



一、C#入门简介

1、与C/C++对比

C#程序需要依附在.NET平台才能运行。
C/C++:编译器将代码转换成机器指令。
C#:编译器将代码转换为IL中间语言;然后程序运行时由.NET平台的CLR动态的转换成机器指令;好处是:提升开发效率,因为程序很大时,代码编译成机器指令是很耗时的;缺点:性能没有C/C++高。

2、.NET平台

.NET Framework 1.0 2.0 3.0…最新是4.8版本,目前已不更新;只能在Windows运行,不能在mac、linux运行。
.NET CORE 可以跨平台。

3、程序运行起始点

所有的代码都是直接或者间接的从Main方法开始运行,是程序的入口点。

二、变量

1、变量的声明

① 变量的类型 变量名称 = 初始值;声明变量就是申请内存,给数据分配内存,内存地址为变量名。
② var 是C#的语法糖,它可以自动推断出数据类型。
③ 内存里面存储的数据会转换成二进制类型。
④ 声明变量时未赋值,C#会根据变量类型给其一个初始值。

2、变量的运算

① bool只有两种值,true和false;if条件判断()中即为bool值。
② 不同变量类型运算要统一类型。

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入一个数字:");
            string str = Console.ReadLine();// 返回类型为string
            int num = int.Parse(str) + 100;// 输入100,得到200 
            string str1 = str + 100.ToString();// 字符串前后相加还是字符串(拼接),输入100会得到100100字符串
            Console.WriteLine(num);
            Console.WriteLine(str1);
        }
    }
}

三、面向对象

1、try catch

将有可能报错的代码写到try catch中,去抓住该错误。

int age = 0;
bool ischeck = true;
for (; ischeck ; )
{
    Console.WriteLine("请输入你的年龄:");
    string str2 = Console.ReadLine();
    try
    {
        age = int.Parse(str2);
        ischeck = false;
    }
    catch
    {

        Console.WriteLine("请输入一个正确的年龄!");
    }
}

2、类及其成员访问级别

如果一个类中的属性、方法、事件等不加public修饰符,外界是不能访问的,即默认是私有的private,在该类的内部是可以访问这些内容;如果一个类名前没有加public,那这个类默认访问权限为internal——访问仅限于当前程序集;而private类,只能在该类所在的名称空间下调用,其他名称空间无法访问到该类。

3、类的属性和变量

类中的实例属性(变量)是针对单个个体来说,即为对象服务,使用时要先实例化;而静态属性(变量)(加static修饰符)是针对整体来说,即为这个类服务,可以直接调用类访问,不需要实例化。

4、类的剥离

一个名称空间下的类太多了,可以剥离出来不同的类;一个类的内容太多,可以使用partial类分割。
一个名称空间下的类是可以相互访问的;一个类要去访问其他名称空间下的类,需要包含其名称空间(使用using),并且所访问的那个类还需要是public。

5、动态链接库文件(dll)

由类库生成的dll文件,要想被其他文件引用,并访问其中的类时,该类是需要public的;注意:类库项目是不能直接运行的。

四、文件操作相关实操

namespace ConsoleApp2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string path = @"C:\Users\HXJ\Desktop";
            DirectoryInfo directoryInfo = new DirectoryInfo(path);
            FileInfo[] files = directoryInfo.GetFiles();

            for (int i = 0; i < files.Length; i++)
            {
                Console.WriteLine(files[i].FullName);
                Console.WriteLine(files[i].Name);
                if (files[i].Name == "文件操作.txt")
                {
                    // 删除指定文件
                    File.Delete(files[i].FullName);// FullName属性为返回完整目录
                    Console.WriteLine(files[i].Name + "已经被删除");// Name属性返回文件名称
                }
               bool isHave = files[i].Name.Contains("文件操作1");
                if (isHave)
                {
                    // 更改指定文件名
                    Console.WriteLine($"{files[i].Name}");// $ 特殊字符将字符串文本标识为内插字符串,等同于下面的语句
                    Console.WriteLine("{0}", files[i].Name);

                    string srcFileName = files[i].FullName;
                    string destFileName = files[i].Directory.FullName+"\\文件操作3.text";
                    File.Move(srcFileName, destFileName);
                    Console.WriteLine("文件名已经被修改!");
                }
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值