小编res*_*sgh的帖子

是否可以在C中完全编写操作系统?

是否可以在C中完全编写操作系统?

完全上,我将所有内容都包含在引导加载程序中,但不包括BIOS/UEFI.

c operating-system

19
推荐指数
3
解决办法
187
查看次数

从Powershell调用带有数组参数的构造函数

我是powershell的初学者,并且对C#适度了解.最近我写了这个powershell脚本,并想创建一个Hashset.所以我写了($ azAz是一个数组)

[System.Collections.Generic.HashSet[string]]$allset = New-Object System.Collections.Generic.HashSet[string]($azAZ)
Run Code Online (Sandbox Code Playgroud)

并按下运行.我收到了这条消息:

New-Object : Cannot find an overload for "HashSet`1" and the argument count: "52".
At filename.ps1:10 char:55
+ [System.Collections.Generic.HashSet[string]]$allset = New-Object System.Collecti ...
+                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [New-Object], MethodException
    + FullyQualifiedErrorId :         ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand
Run Code Online (Sandbox Code Playgroud)

然后,我使用数组参数在powershell中使用googled构造函数,并将代码更改为:

[System.Collections.Generic.HashSet[string]]$allset = New-Object System.Collections.Generic.HashSet[string](,$azAZ)
Run Code Online (Sandbox Code Playgroud)

不知何故,我现在收到这条消息:

New-Object : Cannot find an overload for "HashSet`1" and the argument count: "1".
At C:\Users\youngvoid\Desktop\test5.ps1:10 char:55
+ [System.Collections.Generic.HashSet[string]]$allset = New-Object System.Collecti ...
+                                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [New-Object], MethodException
    + …
Run Code Online (Sandbox Code Playgroud)

arrays powershell constructor arguments hashset

11
推荐指数
1
解决办法
8680
查看次数

派生类中的强制属性声明

我最近阅读了关于属性和反射的内容,我认为在我的程序中包含元数据是一种很好的方法.我有这个抽象类,我希望从它继承的所有类都向类声明一些属性,因为我希望为我的程序创建自定义组件(那些派生类),并希望在运行时读取这些类的元数据.但是,派生类都必须显式声明我存储元数据的属性.那么如何在派生类中强制执行属性声明?谢谢.

c# reflection inheritance attributes

8
推荐指数
1
解决办法
4177
查看次数

在PowerShell cmdlet参数中声明get访问器

根据MSDN:

"必须在公共非静态字段或属性上声明参数.应在属性上声明参数.该属性必须具有公共集访问器,如果指定了ValueFromPipeline或ValueFromPipelineByPropertyName关键字,则该属性必须具有公共get访问器."

为什么我必须在我的cmdlet ValueFromPipeline参数中声明get访问器?据我所知,PowerShell只需要将它们的值放入,而不是将它们读出来.谢谢(顺便说一句,我只是好奇这个行为:)).

c# parameters powershell pipeline properties

5
推荐指数
1
解决办法
529
查看次数

Powershell 删除项不起作用

为什么是

dir E:\Music -File -Exclude *.mp3 -Recurse | foreach {del $_.FullName}
Run Code Online (Sandbox Code Playgroud)

不工作?我测试了我能想到的所有可能性,但仍然无法正常工作。

提前致谢。

powershell

5
推荐指数
1
解决办法
1万
查看次数

事件词典

在这种情况下,c#中是否有可用于创建列表,哈希集和字典等事件的集合?谢谢.

c# collections events

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

奇怪的属性错误

我有这个解决方案愉快地工作,我添加了这个属性:

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct, AllowMultiple = false, Inherited = true)]
public class metadata : Attribute
{
    string mid;
    string mdescription;
    Dictionary<string, string> mdata;
    public string id
    {
        get
        {
            return mid;
        }
    }
    public string description
    {
        get
        {
            return mdescription;
        }
    }
    public Dictionary<string, string> data
    {
        get
        {
            return mdata;
        }
    }
    public metadata(string thisid, string thisdescription, params KeyValuePair<string, string>[] thisdataarray)
    {
        mid = thisid;
        mdescription = thisdescription;
        mdata = new Dictionary<string, string>();
        if (thisdataarray != null)
        { …
Run Code Online (Sandbox Code Playgroud)

c# attributes compiler-errors

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

在C#类构造函数中作为参数委派

嗨我有一个代理作为参数的类,如代码所示,但我得到错误"错误1类型预期...\Classes\Class1.cs 218 33类"和"错误2;预期......\Classes\Class1.cs 218 96 Classes".我该如何解决这个问题?提前致谢!我试图传递它byref所以当一个类初始化时,它的一些方法附加到委托.

public constructor(ref delegate bool delegatename(someparameters))
{
    some code
}
Run Code Online (Sandbox Code Playgroud)

现在什么都没有,它有效,tkx

c# constructor delegates pass-by-reference

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

代表中的方法参数

我有这个方法:

public override void respond(params string[] resargs)
{
    foreach (command cmd in pndgcmds)
    {
        cmd(this);
    }

    if (objs[resargs[0]].status)
        objs[resargs[0]].request(resargs);
    else
    {
        pndgcmds.Add(
            (myclass master) =>
            {
                if (master.objs[resargs[0]].status != true) return;
                master.objs[resargs[0]].request(resargs);
                //code to remove the delegate
            });
    }
}
Run Code Online (Sandbox Code Playgroud)

检查对象是否能够响应,使其响应(如果有),否则将命令存储在字典中,以便在下次调用响应时检查并调用状态.

我有两个问题.

  1. 如何编写代码来删除委托?我不知道该怎么做.

  2. 如您所见,委托的许多内部工作依赖于方法参数.代表将如何表现?

提前致谢!

c# parameters delegates

2
推荐指数
1
解决办法
96
查看次数

c#stdin读取没有响应

我有一个程序,侦听控制台stdin流.

  • Read()返回时,每个字符被读出一个接一个,并传递给method().
  • method()然后将角色附加到a StringBuilder.
  • 如果是'\n',则method()调用respond(),打印出读取的字符并清除StringBuilder.

但是,即使在控制台中键入内容并按Enter键后,我也必须按下/移动鼠标,鼠标按键或控制台焦点内的键盘才能回显键入的文本.更神秘的是,当我在第一个大括号中设置断点Main()并进入之后的每个语句时,程序正确执行.我怎样才能解决这个问题?非常感谢!

public class test
{
    static byte[] buffer = new byte[1];
    static Stream instrm = Console.OpenStandardInput();
    static Stream outstrm = Console.OpenStandardOutput();
    static System.Text.StringBuilder sb = new System.Text.StringBuilder();
    static void Main()
    {
        while (true)
        {
            instrm.Read(buffer, 0, 1);
            method(buffer);
        }
    }
    public static void method(byte[] buffer)
    {
        sb.Append(System.Text.Encoding.UTF8.GetString(buffer));
        if (buffer[0] == (byte)10) respond();
    }
    public static void respond()
    {
        byte[] …
Run Code Online (Sandbox Code Playgroud)

c# stdin stdout stream console-application

2
推荐指数
1
解决办法
4870
查看次数

在vim中,为什么c_表现得好像cc?

作为标题.

由于_是移动到行中的第一个非空白字符,并且c + movement通常意味着从光标到移动的缓冲区(也就是删除+进入插入模式),为什么这不起作用?它似乎删除整行,而不是从光标到行的开头(aka ccC).有替代方案吗?

vim

2
推荐指数
1
解决办法
44
查看次数

执行外部命令时阻止Powershell

当您调用外部.exe命令时,如何使PowerShell阻塞直到外部结束?

powershell synchronization block

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