C#初3引用类型

1.内置引用类型

object(System.Object)    string(System.String)    dynamic(System.Dynamic)

object o = new object();或者是object o2 = new Object();//大小写都可以

Console.WriteLine(o.GetType()); //GetType方法

Console.WriteLine(o.ToString()); //ToString方法

            string s = "hahaha";
            string s2 = "haha";
            s2 += "ha";
            string s3 = "hei";
            s3 += "heihei";//字符串的加法
            Console.WriteLine(s);//输出s
            Console.WriteLine(s2);//输出s2
            Console.WriteLine(s3);//输出s3
            Console.WriteLine(s == s2);//判断字符串是否相等
            Console.WriteLine((object)s == (object)s2);//判断字符串对应的object对象是否相等
            char c = s[0];//获取字符串的字符
            Console.WriteLine(c);//输出字符串的字符
            string s4 = "\\\u0066\n";//"\\"是"\","\u0066"是"f","\n"是"回车"
            Console.WriteLine(s4);//输出s4
            string at = @"\u0066\n";//@符号的作用
            string at2 = "\\u0066\\n";//此句等同于上句,\具有取消转义的功能
            Console.WriteLine(at);
            Console.WriteLine(at2);
            StringBuilder sb = new StringBuilder();//如果经常要对字符串进行操作,那么就要用StringBuilder了,节省内存
            sb.Append("haha");//Append()方法
            sb.Append("ha");
            Console.WriteLine(sb);
            StringBuilder sb2 = new StringBuilder();
            sb2.AppendFormat("{0}{1}", "haha","ha");//AppendFormat()方法
            Console.WriteLine(sb2);
            Console.ReadLine();

2.class

 

 class Program
    {
        static void Main(string[] args)
        {
            var person = new Person(5);//实例化一个class是要通过它的构造函数来实现的,它的构造函数又是默认的(被隐藏),如下
            Console.WriteLine(person.GetAge());//方法的调用,用实例化class后,用实例直接调用方法
            Console.WriteLine(Person.GetOne());//静态方法的调用,直接用类名点调用即可 
            Console.WriteLine(person.Age);//属性的获值,因为属性中有get方法
            person.Age = 10;//属性的赋值,因为属性中有set方法
            Console.WriteLine(person.Age);//再次调用属性
            Console.WriteLine(person.GetAge());//验证age现在为多少
            Console.ReadLine();
        }
    }
    class Person
    {
        /*每一个class都带有默认的构造函数
         *构造函数就长下面这个样子:类名就是其方法名
         *public Person(){
         *}
         */
         //属性
        
         public Person(int myage)
        {
            this.age = myage;//因为是在本类中,此处this可以被省略
        }
        int age;//这是成员变量,和下面的属性长得很像哦
        public int Age//这是属性
        {
            get {
                return age + 10;
            }
            set {
                age = value - 10;
            } 
        }
        public int GetAge()//没有修饰符的话就会用默认的修饰符private,这样在其它类中就访问不到这个方法了
        {
            return age;
        }
        public static int GetOne()
        {
            return 1;
        }

    }


3.Interface

只能包含属性、方法、索引、事件,而class不仅可以包含上述,还可以包含成员变量、构造方法等等等等

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            var person = new Person(5);//实例化一个class是要通过它的构造函数来实现的,它的构造函数又是默认的(被隐藏),如下
            Console.WriteLine(person.GetAge());//方法的调用,用实例化class后,用实例直接调用方法
            Console.WriteLine(Person.GetOne());//静态方法的调用,直接用类名点调用即可 
            Console.WriteLine(person.Age);//属性的获值,因为属性中有get方法
            person.Age = 10;//属性的赋值,因为属性中有set方法
            Console.WriteLine(person.Age);//再次调用属性
            Console.WriteLine(person.GetAge());//验证age现在为多少
            Console.ReadLine();
        }
    }
    class Person : Man,ISuper//类可以继承一个类,可以实现多个接口,类是实现,接口是继承
    {
        /*每一个class都带有默认的构造函数
         *构造函数就长下面这个样子:类名就是其方法名
         *public Person(){
         *}
         */
         //属性
        
         public Person(int myage)
        {
            this.age = myage;//因为是在本类中,此处this可以被省略
        }
        int age;//这是成员变量,和下面的属性长得很像哦
        public int Age//这是属性
        {
            get {
                return age + 10;
            }
            set {
                age = value - 10;
            } 
        }
        public int GetAge()//没有修饰符的话就会用默认的修饰符private,这样在其它类中就访问不到这个方法了
        {
            return age;
        }
        public static int GetOne()
        {
            return 1;
        }
        public override int getAbstruct()//如果一个类继承了一个抽象类,那么这个类就要实现这个抽象类中的抽象方法
        {
            return 50;
        }
        public int GetSuper()//如果一个类继承了一个接口,那么这个类就要实现接口里面的方法
        {
            return age + 100;
        }

    }
    abstract class Man//抽象类不能实例化,抽象类不能实例化,抽象类不能实例化
    {
        public string name;//抽象类中包含成员变量
        public string getName()//抽象类中可以包含不抽象的方法
        {
            return name;
        }
        public abstract int getAbstruct();//这是抽象的方法
    }
    interface ISuper
    {
        int GetSuper();
    }
}
 


猜你喜欢

转载自blog.csdn.net/sndongcheng/article/details/74923222
今日推荐