C#视频——求元素总和,创建删除文件夹,序列化,反序列化

求集合元素总和

 int sum = 0;
            ArrayList arraylist = new ArrayList ();
            for (int i=0;i<=100;i++)
            {
                arraylist.Add(i);
            }
            for (int i=0;i<arraylist .Count;i++)
            {
                if (arraylist[i] is int)
                {
                    sum += (int)arraylist[i];
                }
            }
            Console.WriteLine(sum);
            Console.ReadKey();

求随机产生数字总和

 ArrayList arraylist = new ArrayList ();
            Random r =  new Random();
           ///随机输出十个不相同的数
            while (arraylist.Count  !=10)
            {
                int num = r.Next(1, 100);
                if (!arraylist.Contains (num))
                {
                    arraylist.Add(num);
                }
                
            }
            ///对随机的十个数进行求和
            int sum = 0;
            for(int i=0;i<arraylist .Count;i++)
            {
               if (arraylist [i]is int)
                {
                    sum += (int)arraylist[i];
                }
                Console.WriteLine(arraylist[i]);
            }

            Console.WriteLine(sum);
            Console.ReadKey();

哈希表简介

Hashtable ht = new Hashtable();
            ///对比下面的几项内容不难发现,对应两个值一个第一个表示键,第二个表示值
            ///哈希表是以键值的形式存储,并且存储的数据类型为object
            ht.Add(534, "sdsf");
            ht.Add("小赵", "324");
            ht.Add("sdf", "小赵");

            foreach ( object str in ht.Keys )  // foreach 表示循环
            {
                Console.WriteLine("key{0},      value{1}", str, ht[str]);

            }
            Console.WriteLine("添加成功了");
            Console.ReadKey();

file 方法创建文件,删除文件,检查文件是否存在,移动文件

using System.IO;  //利用 file 方法必须先导入命名空间


namespace ConsoleApp39
{
    class Program
    {
        static void Main(string[] args)
        {
             File.Create(@"C:\Users\崔\桌面\文档.rtf");   //在指定路径下创建一个文件,如果文件存在则覆盖该文件
            Console.WriteLine("恭喜您,覆盖成功!");    //覆盖成功提示内容
			 //File.Delete(@"C:\Users\崔\桌面\文档.rtf");//删除指定路径下的文件,直接删除,回收站没有
            //File.Exists (@"C:\Users\崔\桌面\文档.rtf");//判断文件是否存在
            //File.Move(原文件位置,转换到地址); //把文件移动到指定的路径下,可以改名,如果那个文件路径下有这个文件,会报异常
            //File.Copy(原文件位置,复制到到地址);//把文件移动到指定的路径下,如果路径下有这个文件夹 后报异常
            //如果复制文件的时候另外一个路径中有这个文件了,名字相同,会报异常,可以利用这个方法重载,在第三个参数的位置上协商true,就可以覆盖那个重名的文件/File.Copy(原文件位置,复制到到地址,true);
            Console.ReadKey();

        }
    }
}

在指定路径下创建和删除文件夹

 		 string path = @"C:\Users\崔\桌面\1";
            Directory.CreateDirectory(path);//在指定路径下创建一个文件夹,如果文件夹内有东西在创建不报异常

            // Directory.Delete(path, true);//删除指定路径下的文件夹,如果文件夹内有东西,可以采用第二个重载(地址路径, true),就不会报异常
            // bool result = Directory.Exists(path);//判断路径下是否存在文件夹
            //string[] dir = Directory.GetDirectories(path);//获取指定路径下的所有文件夹的全路径
            // string[] file = Directory.GetFiles(path);//获取这个文件夹下面所有文件的路径
            Console.WriteLine("创建成功");
            Console.ReadKey();

子类的方法名可以和父类的方法名重名,但是会出现一条绿线
解决方法:(1)子类方法的修饰符后加New,无论是否加New都不影响使用
(2)在父类的方法的修饰符后加virtual(虚拟的),在子类中重写父类的方法,加上一个override(覆盖)
抽象方法的使用:
(1)抽象方法没有方法体
(2)抽象成员只能在抽象类中
(3)抽象类可以有非抽象成员
(4)抽象类的派生类必须实现抽象方法体
(5)抽象类只能用作基类,无法实现实例化
重载和重写的区别
重载是两个相同的方法的名称,但是其中的参数不同,进行的多次重载是为了满足不同的需要,重载是面向过程的概念
重写是进行基类中函数的重写,重写是面向对象的概念。

C#中接口和类的异同
(1)不能直接实例化接口
(2)接口不包含方法的实现
(3)接口可以多继承,类只能单继承
(4)类定义可在不同的源文件之间进行拆分
相同:
接口,类和结构都可以从多个接口继承
接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员
接口和类都可以包含事件,索引器,方法和属性

类之间不支持多重继承,接口之间支持多重继承,类对接口叫做实现不能叫继承,能有多个接口但不能有多个类。

装箱和拆箱

 //装箱  将Int类型的值转换成object
            //int num = 10;
            //object Num = num;
            //Console.WriteLine(Num);
            //Console.ReadKey();

            //拆箱  将object类型的值转换成 int
            int num = 10;
            object Num = num;
            int number= (int)Num;
            Console.WriteLine(number);
            Console.ReadKey();

序列化

//引入命名空间
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
//序列化一个类
[Serializable]      //注意在类之前需要加上中括号中的内容
    public class person
    {
        private string _name;
        public string Name
        {
            get { return _name; }
            set { _name = value; }
         }
    }

//主程序
static void Main(string[] args)
        {
            person p = new person();       //实例化person类
            p.Name = "春春";
            string path = @"C:\Users\崔\桌面\文档.rtf";
            using (FileStream fs= new FileStream(path,FileMode.Open,FileAccess.Write,FileShare.Write))
            {
                BinaryFormatter bf = new BinaryFormatter();
                bf.Serialize(fs, p);

            }
            Console.WriteLine("序列化完毕");
            Console.ReadKey();

        }


反序列化

//引入命名空间
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;
//序列化一个类
[Serializable]      //注意在类之前需要加上中括号中的内容
    public class person
    {
        private string _name;
        public string Name
        {
            get { return _name; }
            set { _name = value; }
         }
    }
 static void Main(string[] args)
        {
            
            person p;
            string path = @"C:\Users\崔\桌面\文档.rtf";
            using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read , FileShare.Read ))
            {
                BinaryFormatter bf = new BinaryFormatter();
                p = (person)bf.Deserialize(fs);

            }
            Console.WriteLine(p.Name);
            Console.WriteLine("反序列化完毕");
            Console.ReadKey();

            ;
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值