小编Sam*_*rch的帖子

为什么静态类密封?

我理解静态类和密封类是什么,我经常使用扩展方法,我只是想知道 - 有谁知道为什么静态类被密封在C#中?

我已经看过MSDN和C#语言规范,但它从未真正说明为什么它们被密封了.

为什么我们不能继承静态类并覆盖静态成员等?

编辑:

我很感激你的答案,但你还在谈论静态类什么.我知道为什么我不能覆盖它的方法.但是我问他们为什么这么做?

vtable真的那么贵吗?为什么要设计语言,所以静态类实际上是静态的?它只是为了传统吗?我还没有看到另一个优势吗?

(我有偷偷摸摸的怀疑,我从根本上误解了静态课程的重点.)

c# oop types

6
推荐指数
2
解决办法
578
查看次数

如何在PowerShell中捕获控制台关闭事件?

如何在PowerShell中捕获控制台关闭事件?

我已经尝试添加一个控制台控件处理程序,它适用于CMD,但在PowerShell中没有,在PowerShell中有不同的方法吗?

例:

namespace Test_ConCtrl {
    class Program {
        public enum CtrlTypes : uint { CTRL_C = 0, ... }

        public delegate Boolean ConsoleCtrl_Delegate(CtrlTypes CtrlType);

        [DllImport("kernel32.dll")]
        static extern bool SetConsoleCtrlHandler(
            ConsoleCtrl_Delegate HandlerRoutine, bool Add);

        public static Boolean My_CtrlHandler(CtrlTypes inConType) {
            switch(inConType) { ... }
        }

        static void Add_Handler() {
            ConsoleCtrl_Delegate myHandler = My_CtrlHandler;
            SetConsoleCtrlHandler(myHandler, true);
        }

        ...
Run Code Online (Sandbox Code Playgroud)

c# powershell

4
推荐指数
1
解决办法
954
查看次数

如何创建自定义Powershell运算符?

是否可以在Powershell中创建自定义运算符?而且,我该怎么做?我搜索过谷歌,但没有任何事情发生.

我指的是一个特定的中缀运算符:

$ ExampleList -contains "元素"

我创建了cmdlet(使用Powershell和C#),模块等,所以我只需要广泛的笔画.

powershell customization

4
推荐指数
2
解决办法
956
查看次数

在C中,文字字符串地址是否总是大于任何分配的字符串地址?

我试图区分文字字符串与分配的字符串,所以我不小心尝试free()文字字符串,这将导致段错误.

我可能尝试free()文字字符串的原因涉及一个可以嵌入的strcat()包装器: strcatex("My name ", strcatex("is ", strMyName));

无论原因如何,请考虑:

void* mallocex(int intBytes) 
{
    void* newPtr;

    newPtr = malloc(intBytes);

    if(newPtr == 0)
        return 0;
    else if(newPtr > maxPointer)
        maxPointer = newPtr;

    return newPtr;
}
Run Code Online (Sandbox Code Playgroud)

int SafeFree(void **ptr)
{
    if((unsigned long) ptr > (unsigned long) maxPointer) 
        return 0;
    else
        free(*ptr);

    return 1;
}
Run Code Online (Sandbox Code Playgroud)

示例使用:

char *newString;
newString = (char*) mallocex(12);

strcpy(newString, "Example one");

SafeFree(&newString);
SafeFree("Example two");
Run Code Online (Sandbox Code Playgroud)

无论我的堆有多大,这总能工作吗?

c string memory-management

3
推荐指数
1
解决办法
100
查看次数

我启用了编译器优化,我的多线程C程序积极破坏,我可以读到的任何文章?

我正在使用MinGW,它是Windows的gcc.我的程序涉及多个窗口,两个不同的主线程,以及线程池中的多个工作线程,用于重叠的网络I/O.

无需编译器优化即可完美运行.

A)编译器优化是否必要?我的节目已经很快了.是否它可能会提供显着的改善?

B)是否有关于如何正确构建多线程程序的文章,以便编译器优化可以完成其工作?

c compiler-construction optimization multithreading mingw

0
推荐指数
1
解决办法
550
查看次数