C#笔记2

1.VS提供代码片段,可以快速输入想要的内容,比如输入mbox然后按两下tab,可以快速插入对话框。如果想知道有哪些快捷键,可以在右键,插入片段中找到。

2. 我们在实际编码中有时会用到as关键字来将对象转换为指定类型,与is类型不同的是,is关键字是用于检查对象是否与给定类型兼容,如果兼容就返回true,如果不兼容就返回false。而as关键字会直接进行类型转换,如果转换成功会返回转换后的对象,如果转换不成功则不会抛出异常而是返回null。as只能用于继承树中的类之间进行转换,否则VS就直接报错啦。Student s = p as Student;

3.接口成员访问修饰符默认为public,且不能显示使用访问修饰符。构造函数默认为public访问修饰符。 析构函数不能显示使用访问修饰符且默认为private访问修饰符。 类的成员默认访问修饰符为private;枚举类型成员默认为public访问修饰符,且不能显示使用修饰符。结构成员默认为private修饰符。 结构成员无法声明为protected成员,因为结构不支持继承。嵌套类型的默认访问修饰符为private。 和类,结构的成员默认访问类型一致。

接口中不允许出现字段,只允许自动属性(set;get;没有大括号,因为接口成员不能有定义,所以在子类中要定义字段来具体实现)。属性的setget也是没有实现体的函数,所以本质上讲接口只允许出现方法。

如果继承中既有接口和类,则类必须放在最前面。

当继承多个接口时,接口中存在相同的方法,此时可以进行显示实现。

using System;
namespace ConsoleApp1
{
    class Program
    {
        public static void Main(string[] args)
        {
            A a = new Person();
            B b = new Person();
            //根据赋值对象不同调用不同的方法
            a.func();
            b.func();
        }
    }

    class Person : A, B
    {
        //分别实现A和B接口中的Func函数
        void A.func()
        {
            Console.WriteLine("A");
        }

        void B.func() //注意这里不能有修饰符,因为他实现的是接口的内容。用子类的对象是无法访问的。
        {
            Console.WriteLine("B");
        } 
    }

    public interface A
    {
        void func();
    }

    public interface B
    {
        void func();
    }
}

4.ArrayList和HashTable在System.Collections中。Dictionary在System.Collections.generic中。

            ArrayList list = new ArrayList(); //有多个构造函数可以选择
            list.Add(1);
            list.Add(new Person());
            list.Add("hello");
            list.Remove(1);
            list.Insert(0, "InsertData");

            foreach(var v in list)
            {
                Console.WriteLine(v);
            }
            IEnumerator ie = list.GetEnumerator();

            Console.WriteLine("---------IEnumerator");
            while (ie.MoveNext())
            {
                Console.WriteLine(ie.Current);
            }

            Console.WriteLine("----------HashTable");
            Hashtable ht = new Hashtable(3);//定义只有3个元素的HashTable
            ht.Add(1, "hello");
            ht.Add("new", "newdata");
            //ht.Add("new", "newData"); 如果定义相同的键值则会异常
            ht["new"] = "newnew"; //这样如果没有则新加,如果有替换新的值
            foreach(var v in ht.Keys)
            {
                Console.WriteLine(ht[v]);
            }

            Console.WriteLine("----------Dictionary");
            Dictionary<Int32, String> d = new Dictionary<int, string>();
            d.Add(1, "ABC");
            d.Add(2, "EFG");
            d.Remove(2);
            foreach( var v in d.Keys)
            {
                Console.WriteLine(d[v]);
            }

《完》


“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值