sealed相关内容

如何在 C++ 中定义密封类?

如何阻止该类被其他类继承. 解决方案 C++11 解决方案 在 C++11 中,你可以在定义中使用 final 关键字来封装一个类: class A final//注意在类名后使用final关键字{//...};class B : public A//error - 因为 class A 被标记为 final(密封).{//所以 A 不能派生自.//...}; 要了解 final ..
发布时间:2021-12-17 19:40:13 C/C++开发

迭代 Scala 中的密封特征?

我只是想知道是否可以在 Scala 中迭代密封特征?如果不能,为什么不能?既然性状是密封的,应该不是吧? 我想做的是这样的: 密封 trait ResizedImageKey {/*** 获取要在与此键关联的调整大小的图像上使用的尺寸*/def getDimension(originalDimension: Dimension): 维度}case class Dimension(widt ..
发布时间:2021-12-07 12:41:31 其他开发

Kotlin 中密封类之外的引用?

我正在尝试创建一个类,该类使用自己的状态来操作它持有引用的外部对象的状态.外部对象可以是A类或B类,两者相似,但不受作者控制.因此,根据 @SimY4 的早期答案,创建了一个密封类来访问它们的公共属性. //*** 不编译 ***class A {//结构不可修改的外部类val prop get()=“一些字符串成为A类方式"}class B {//结构不可修改的外部类val prop get( ..
发布时间:2021-11-25 09:54:48 C#

编译器如何优化密封类实现的虚方法

我想知道以下代码是如何优化的.特别是关于虚拟和直接呼叫.我已经评论过我认为一切都经过优化的方式,但这些只是猜测. 公共抽象类超级{公共抽象无效 Foo();公共无效 FooUser(){富();}}公开课 Child1 : 超级{公共覆盖无效 Foo(){//做点什么}}公共类 SealedChild :超级{公共覆盖无效 Foo(){//做点什么}}课程计划{无效主(){Child1 chil ..
发布时间:2021-11-25 09:15:08 C#/.NET

C#密封类与无公共构造函数

我目前正在尝试更深入地了解.NET框架.我想知道是否可以创建两个CommandManager时遇到错误: Cannot create an instance of CommandManager because it has no public constructors. 显然,这意味着:不要这样做,并且拥有两个可能甚至没有意义. 现在,在出现消息之前,我遇到了另一个错误: Cann ..
发布时间:2020-07-06 18:34:15 C#/.NET

属性更改时引发事件

当属性值更改时,我需要引发一个事件.就我而言,这是webView.Source更改时的情况.我无法创建派生类,因为该类被标记为已密封.有什么办法引发事件吗? 谢谢. 解决方案 属性更改时引发事件 对于这种情况,您可以创建一个DependencyPropertyWatcher来检测DependencyProperty更改的事件.以下是可以直接使用的工具类. public ..
发布时间:2020-07-06 18:34:13 C#/.NET

密封的类和对象浏览器

在“对象浏览器"窗口中检查.net对象模型时,我发现缺少有关密封类的信息. 例如,如果有人导航到mscorlib容器-> 系统名称空间-> 字符串类,则详细信息窗格将显示以下内容: 公共类字符串 系统成员 摘要: 将文本表示为一系列Unicode字符. 属性: [System.Runtime.InteropServices.ComVisibleAttribu ..
发布时间:2020-07-06 18:33:10 其他开发

更改"ToString";密封班

我正在上一堂课: public sealed class WorkItemType 它的ToString很弱(仅显示Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemType). 有什么方法可以覆盖它以显示WorkItemType的名称? 通常,我只是将值汇总到一个新类中,但是我将其用于WPF中的绑定(我希望在组 ..
发布时间:2020-07-06 18:33:08 C#/.NET

“密封班级受保护成员"警告(单身人士班)

我已经实现了一个单例类,并不断收到警告,指出我正在编写的方法是“在密封类中声明的新受保护成员".它不会影响构建,但是我真的不想忽略警告,以防以后引起问题吗?我知道密封类是不能继承的类-因此不能重写其方法,但是我仍然不明白为什么以下代码会给我警告(是由于使用了单例设计吗?): namespace WPFSurfaceApp { public sealed class PresentationM ..
发布时间:2020-07-06 18:33:04 C#/.NET

为什么要编译此C#类声明?

这个问题确实没有意义,但是我很好奇: 此: public sealed class MyClass { protected void MyMethod(){} } 编译,但发出警告 在此期间: public sealed class MyClass { public virtual void MyMethod(){} } 不会编译.只是出于好奇,这是有原 ..
发布时间:2020-07-06 18:33:02 C#/.NET

为什么必须对WinMD/WinRT组件的裸露类型进行密封?

VS编译器不允许为WINMD类型库创建密封的公开类型. 为什么要设置此限制? (我知道密封类型的优点,我的问题是关于Win RT组件的.) 解决方案 这是COM施加的体系结构限制.它们是任何WinRT类型的核心,它们是从IUnknown和IInspectable派生的. COM的问题在于它仅支持接口继承,但不支持实现继承.这是一个很强的COM设计目​​标,实现继承对实现细节(包括臭名 ..
发布时间:2020-07-06 18:32:57 C#/.NET

为什么必须密封WinRT类型?

在多个地方(例如"创建MSDN上的C#和Visual Basic 中的“用于JavaScript的Windows运行时组件"),我已经看到它指定,如果您要在.NET中编写要从JavaScript使用的类,则必须将其设置为密封类. 这似乎是一个任意限制.为什么JavaScript只能与密封类一起使用? 解决方案 从JavaScript的角度来看,暴露给JavaScript应用程序的Wi ..
发布时间:2020-07-06 18:32:55 其他开发

防止方法在C#中被覆盖

如何防止方法在派生类中被覆盖? 在Java中,我可以通过使用希望防止被覆盖的方法上的final修饰符来做到这一点. 如何在C#中实现相同的目标? 我知道使用sealed,但是显然我只能将其与override关键字一起使用? class A { public void methodA() { // Code. } public v ..
发布时间:2020-07-06 18:32:48 C#/.NET

什么是C#中的内部密封类?

我正在浏览一些C#代码以扩展VS2010中的语言支持(好的示例).我看到了一些叫做internal sealed class 的类 这些是做什么的?一个人会使用它们吗? 解决方案 该类是: internal:只能从定义的程序集(或朋友程序集)中访问. sealed:无法继承. 将类标记为internal是防止程序集的外部用户使用它们的一种方式.这实际上是设计封装的一种形式 ..
发布时间:2020-07-06 18:32:46 C#/.NET

访问级别和修饰符(私有,密封等)是否出于C#的安全目的?

我已经看到您可以使用反射来操纵私有成员和内部成员 .我还看到它说,“密封"类比没有密封的类更安全. 修饰符“公共的,受保护的,内部的,私有的,抽象的,密封的,只读的"修饰符是否只是绅士关于设计和API使用的协议,只要您能够获得反思,修饰符就可以被破坏吗?而且,如果黑客已经在运行调用您的API的代码,那么游戏就已经丢失了,对吧? 以下内容比其他任何类别都更加安全吗? //priva ..
发布时间:2020-07-06 18:32:43 C#/.NET

什么是密封性状?

"Scala编程"中描述了密封类,但没有密封特征. 在哪里可以找到有关密封性状的更多信息? 我想知道,密封特征是否与密封类相同? 或者,如果没有,有什么区别? 什么时候使用密封特性(什么时候不使用)是一个好主意? 解决方案 sealed特性只能在与其声明相同的文件中扩展. 它们通常用于提供enums的替代方法.由于它们只能在单个文件中扩展,因此编译器知道每种可能的子类型并可以对 ..
发布时间:2020-07-06 18:31:39 其他开发