Tag: 虚拟

c#屏幕截图虚拟桌面

我找到了一种用c#创建虚拟桌面的方法。 现在我想知道我们是否可以截取特定桌面的屏幕截图,如果是这样的话? 提前致谢 暴雪

捕获虚拟屏幕(所有监视器)

我正在尝试获取整个虚拟屏幕的屏幕截图。 这意味着,不仅是主屏幕的图像,而且是连接到计算机的每个屏幕的图像。 有没有办法做到这一点? 我尝试使用它,但它不起作用: Bitmap b = new Bitmap(SystemInformation.VirtualScreen.Width, SystemInformation.VirtualScreen.Height); Graphics g = Graphics.FromImage(b); this.Size = new Size(SystemInformation.VirtualScreen.Width, SystemInformation.VirtualScreen.Height); g.CopyFromScreen(0, 0, 0, 0, b.Size);

实现后密封接口

我正在做一个小项目,我遇到了这个问题。 项目输出是包含接口的库。 我希望实现该接口并尽可能密封其中的函数: public interface ITest { void SomeMethod(); } class A : ITest { public sealed override SomeMethod() { } } 我们的想法是让每个人都可以使用该界面,并拥有一些实现它的专门类。 例外情况是,我想确保如果某人创建了类型A的专用类,他/她将无法更改方法的行为。 问题是您不能在其中放置“override”关键字,因为该方法未在界面中声明为“虚拟”。 并且您不能在接口中将其声明为“虚拟”,因为它是不允许的。 并且您无法删除“override”关键字,因为“密封”需要它。 任何变通方法或头脑风暴的想法都会受到欢迎,但如果有人能想出一个包含界面的解决方案,我真的很乐意学习它! 谢谢! 编辑:忘了这个问题! 就像Ani说的那样,我忘了默认C#中的方法是密封的。 似乎偶尔回到基础知识总是好的…

如何在C#中浏览本地虚拟文件夹?

在我的C#程序中,我必须浏览目录。 所以我使用方法System.IO.Directory.GetFiles(directory) ,当目录是像“C:\ Program File”这样的真实目录时,它运行良好,但当它是一个虚拟目录(例如:librairie目录)时,目录值看起来像这个:“:: {031E4825-7B94-4dc3-B131-E946B44C8DD5} \ Pictures.library-ms”我不知道如何浏览它。

C#Virtual和Override的内部工作原理

关于C#虚拟和覆盖机制如何在内部工作的主题已经被程序员讨论过死亡……但是在谷歌上半小时之后,我找不到以下问题的答案(见下文): 使用简单的代码: public class BaseClass { public virtual SayNo() { return “NO!!!”; } } public class SecondClass: BaseClass { public override SayNo() { return “No.”; } } public class ThirdClass: SecondClass { public override SayNo() { return “No…”; } } class Program { static void Main() { ThirdClass thirdclass = new ThirdClass(); string a = […]

接口/基类中的C#枚举?

我有枚举的问题 我需要在基类或接口中创建一个枚举(但是空的) class Base { public enum Test; // ??? } 并在一些父类中创建不同的枚举之后 class Parent1 { public enum Test {A, B, C}; } class Parent2 { public enum Test {J, H, K}; } 现在,当我必须使用枚举时,我有下一节课的方法 class Test { public void Foo(Test enum) { int value = (int) enum; // … } } 有没有办法做那样的事情? 如果不是我必须在每个class级使用静态内联… class Parent1 { […]

虚函数C#

我理解虚函数是什么。 但我没有得到的是他们如何在内部工作? class Animal { virtual string Eat() { return @”Eat undefined”; } } class Human : Animal { override string Eat() { return @”Eat like a Human”; } } class Dog : Animal { new string Eat() { return @”Eat like a Dog”; } } static void Main() { Animal _animal = new Human(); […]

什么时候应该在重写方法中调用base.Method(),以及在团队中编写代码时如何标记?

当使用一些框架/ api时,有时候你不清楚是否必须调用base.Method如果你覆盖它,例如你可以非常肯定你应该在覆盖事件调用器时调用base.Maethod()来传播事件在其他情况下,它可能不是那么清楚,尤其是在没有可用的源代码且没有注释的情况下。 我想知道其他程序员在这种情况下如何决定是否应该调用基本方法,如果你要编写一些框架如何通知其他程序员你希望在虚拟成员中调用或不调用基本方法。

C#:什么是虚拟事件以及它们如何使用?

虚拟活动如何运作? 你会怎么覆盖它? 那会怎么样? 在什么情况下你会这样做? 例如,它是否可以替代受保护的OnEvent方法? 那么inheritance类可以覆盖事件并直接引发它? 或者那是错的还是不行? MSDN对此说了这样的话: 可以使用virtual关键字将事件标记为虚拟事件。 这使派生类可以使用override关键字覆盖事件行为。 还可以密封覆盖虚拟事件的事件,该事件指定对于派生类,它不再是虚拟的。 但这并没有让我更加明智。 密封的东西虽然很明显。 注意:我已经看到了C#中的虚拟事件如何工作? 问题,但它并不是真正的虚拟事件如何工作。 相反,这个人是如何得到他们使用它们得到的结果。 试图弄清楚他的例子和答案中的虚拟事件是什么,但实际上并没有真正理解它。

虚方法表

在讨论密封类时,经常提到术语“虚函数表”。 究竟是什么? 我刚才读到一个方法表(我不记得这个目的的目的)和谷歌/搜索这里带来了C ++相关的结果。 谢谢