Heim > 类库下载 > net类库 > Versiegelter Dichtungstyp

Versiegelter Dichtungstyp

高洛峰
Freigeben: 2016-11-01 13:32:24
Original
1616 Leute haben es durchsucht

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
#region Overview
//Verwendung in der Klassendeklaration versiegelt kann Verhindern Sie, dass andere Klassen diese Klasse erben. Durch die Verwendung des versiegelten Modifikators in der Methodendeklaration wird verhindert, dass erweiterte Klassen diese Methode überschreiben.
//Der versiegelte Modifikator wird hauptsächlich verwendet, um eine unbeabsichtigte Ableitung zu verhindern, kann aber auch bestimmte Laufzeitoptimierungen fördern. Da eine versiegelte Klasse niemals über abgeleitete Klassen verfügen wird, können insbesondere Aufrufe virtueller Funktionsmitglieder von Instanzen der versiegelten Klasse zur Verarbeitung in nicht virtuelle Aufrufe konvertiert werden.

//密封类://密封类在声明中使用sealed 修饰符,这样就可以防止该类被其它类继承。如果试图将一个密封类作为其它类的基类,C#将提示出错。理所当然,密封类不能同时又是抽象类,因为抽象总是希望被继承的。//在哪些场合下使用密封类呢?实际上,密封类中不可能有派生类。如果密封类实例中存在虚成员函数,该成员函数可以转化为非虚的,函数修饰符virtual 不再生效。#endregionnamespace Sealed密封类
{    class NOSealed
    {        public static void OO()
        {
            Console.WriteLine("没有使用密封");
        }
    }

    sealed class YESSealed
    {        public static void OO()
        {
            Console.WriteLine("使用了密封");
        }
    }    class MyClass : NOSealed //YESSealed 那就错了
    {        public new void OO()
        {
            Console.WriteLine("没有继承密封");
        }
    }    //密封类不可以被继承,可以被调用
    sealed class mysealed   //声明为密封类  
    {        public int x;        public int y;
    }    class Program
    {        static void Main(string[] args)
        {
            NOSealed.OO();
            MyClass M = new MyClass();
            M.OO();            //调用密封类
            YESSealed.OO();
            mysealed m = new mysealed();
            m.x = 100;
            m.y = 200;
            Console.WriteLine("x={0}, y = {1}", m.x, m.y);
            Console.ReadLine();

            Console.ReadKey();
        }
    }
}
Nach dem Login kopieren


Verwandte Etiketten:
c#
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage