自学内容网 自学内容网

c# new

在c#中,new是关键字之一,new关键字主要有以下两个用途:运算符、修饰符。

1、运算符(operator)

new运算符用于创建对象和调用构造函数。
有三种形式的new表达式:

  • 对象创建表达式用来创建类类型(class type)和值类型(value type)新的实例。
  • 数组创建表达式用来创建数组类型(array type)的新的实例。
  • 委托创建表达式用来创建委托类型(delegate type)的新的实例。

1.1 对象创建表达式

class Program
{
    static void Main(string[] args)
    {
        Student stu1 = new Student(15, "Mike");
        Console.WriteLine(stu1.Age);
        Console.WriteLine(stu1.Name);
    }
}

class Student
{
    private int age;

    public int Age
    {
        get { return age; }
        set { age = value; }
    }

    private string name;

    public string Name
    {
        get { return name; }
        set { name = value; }
    }

    public Student(int age, string name)
    {
        this.age = age;
        this.name = name;
    }
}
class Program
{
    static void Main(string[] args)
    {
        int a = new int();
        a = 10;
        //等价于
        //int a = 10;
        Console.WriteLine(a);
    }
}

1.2 数组创建表达式

class Program
{
    static void Main(string[] args)
    {
        int[] array = new int[] { 1, 2, 3, 4 };
        foreach (var i in array)
        {
            Console.WriteLine(i);
        }
    }
}

1.3 委托创建表达式

delegate int NumberProcess(int a,int b);

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            NumberProcess n = new NumberProcess(Add);
            Console.WriteLine(n(2, 3));
        }

        static int Add(int a,int b)
        {
            return a + b;
        }
    }
}

2、修饰符(modifier)

用作声明修饰符时,new 关键字可以显式隐藏从基类继承的成员。

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Teather t = new Teather();
            Console.WriteLine(t.age);
            Console.WriteLine(t.name);
        }
    }

    class Person
    {
        public int age = 10;
        public string name = "Mike";
    }

    class Teather:Person
    {
        new public int age = 15;
    }
}

原文地址:https://blog.csdn.net/sc_1313/article/details/143901267

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!