当前位置:w88优德官网网文章中心网站开发.Net → C# new 用法实例

C# new 用法实例

减小字体 增大字体 作者:C# new 用法实例  来源:www.cuoxin.com  发布时间:2014-8-22 21:34:17
    int a = new  int ();这句相当于int a = 0;*a是空    int[] a = new int [20];这句的本质是指针指向一个int20的空间(在堆里)    这个与class类似的。    1)new 运算符:用于创建对象和调用构造函数。这种大家都比较熟悉,没什么好说的了。
    2)new 修饰符:在用作修饰符时,new 关键字可以显式隐藏从基类继承的成员。
    3)new 约束:用于在泛型声明中约束可能用作类型参数的参数的类型。
 
    关于第二种用法看下例:
using System;
namespace ConsoleApplication1
{
    public class BaseA
    {
        public int x = 1;
        public void Invoke()
        {
            Console.WriteLine(x.ToString());
        }
        public int Trueva lue
        {
            get { return x; }
            set { x = value; }
        }
    }
    public class DerivedB : BaseA
    {
        new public int x = 2;
        new public void Invoke()
        {
            Console.WriteLine(x.ToString());
        }
        new public int Trueva lue
        {
            get { return x; }
            set { x = value; }
        }
    }
 
    class Test
    {
        static void Main(string[] args)
        {
            DerivedB b = new DerivedB();
            b.Invoke();//调用DerivedB的Invoke方法,输出:2
            Console.WriteLine(b.x.ToString());//输出DerivedB的成员x值:2
            BaseA a = b;
            a.Invoke();//调用BaseA的Invoke方法,输出:1
            a.Trueva lue = 3;//调用BaseA的属性Trueva lue,修改BaseA的成员x的值
            Console.WriteLine(a.x.ToString());//输出BaseA的成员x的值:3
            Console.WriteLine(b.Trueva lue.ToString());//输出DerivedB的成员x的值,仍然是:1
//可见,要想访问被隐藏的基类的成员变量、属性或方法,办法就是将子类造型为父类,然
//后通过基类访问被隐藏的成员变量、属性或方法。
        }
     }


    new约束指定泛型类声明中的任何类型参数都必须具有公共的无参数构造函数.请看下面实例:

using System;
using System.Collections.Generic;
 
namespace ConsoleApplication2
{
    public class Employee
    {
        private string name;
        private int id;
 
        public Employee()
        {
            name = "Temp";
            id = 0;
        }
 
        public Employee(string s, int i)
        {
            name = s;
            id = i;
        }
 
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
 
        public int ID
        {
            get { return id; }
            set { id = value; }
        }
    }
 
    class ItemFactory<T> where T : new()
    {
        public T GetNewItem()
        {
            return new T();
        }
    }
 
    public class Test
    {
        public static void Main()
        {
            ItemFactory<Employee> EmployeeFactory = new ItemFactory<Employee>();
            ////此处编译器会检查Employee是否具有公有的无参构造函数。
            //若没有则会有The Employee must have a public parameterless constructor 错误。
            Console.WriteLine("{0}'ID is {1}.", EmployeeFactory.GetNewItem().Name, EmployeeFactory.GetNewItem().ID);
        }
    }
}



本文引用网址:
在下列搜索引擎中搜索“C# new 用法实例”的相关信息:
谷歌搜索 百度搜索 360搜索 雅虎搜索 搜狗搜索 搜搜搜索 必应搜索 有道搜索
你可能还喜欢以下文章
  • 1如何做爱真人示范图片 男女ML常...
  • 2怎么爱爱最爽?真人爱爱视频教...
  • 3如何做爱更舒服?教你做爱72式...
  • 4怎么做爱舒服?真人示范做爱姿...
  • 5王梦溪未经处理照曝光 王梦溪口...
  • 1女性18岁身份证号大全 成年女人...
  • 217岁女孩身份证号大全 18岁女孩...
  • 3网络红人如何赚钱?我要成为网...
  • 4dede:arclist 实现分页!-织梦...
  • 5首页flash幻灯片不显示解决方法...
  • 1舒淇艳照门事件 舒淇不雅照ed2...
  • 2合肥艳照门事件 合肥艳照门全套...
  • 3怎样爱爱最爽?性爱姿势真人图...
  • 4嫩白少妇与猛男户外疯狂车震遭...
  • 5王梦溪种子完整版 王梦溪1.08G...
  • 1如何做服务器安全维护?有哪些...
  • 2Windows Server 2003系统性能优...
  • 3Apache Prefork和Worker模式的...
  • 4名词解释:分布式拒绝服务攻击...
  • 5正确认识网站优化与SEO的误区
  • 赞助商广告

    图片文章导读

    相关文章阅览