小编svi*_*ick的帖子

错误无法在此范围内声明局部变量

我试图用DotNetZip解压缩文件,但我在"e"上收到错误

using (ZipFile zip = ZipFile.Read(openFileDialog1.FileName))
{
    foreach (ZipEntry e in zip)
    {
        e.Extract(Environment.CurrentDirectory, ExtractExistingFileAction.OverwriteSilently);
    }
}
Run Code Online (Sandbox Code Playgroud)

c# dotnetzip

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

这引起的ArgumentOutOfRangeException是什么?

我有一个让我疯狂的问题.我正在使用一个泛型List,每当我尝试将其第一个(或最后一个?)索引分配给变量时,它会抛出ArgumentOutOfRangeException.这是一大堆代码,因此我将尝试仅提取相关内容.所以这里是:

private string GetRuleByName(string name, List<string> rules)
{
    if(rules != null)
    {
        List<string> todo = new List<string>();
        todo.AddRange(rules);

        while(rules.Count != 0)
        {
            string r = todo[0]; // <- Error 'ArgumentOutOfRangeException' here
            todo.RemoveAt(0);

            // ...
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是我称之为方法的方式:

void treeView_AfterSelect(object sender, TreeViewEventArgs e)
{
    string currentRule = GetRuleByName(treeView.SelectedNode.FullPath, ruleCollection)
    // the string list "ruleCollection" always contains
    // strings and thus is never empty
}
Run Code Online (Sandbox Code Playgroud)

虽然它不是一个非常详细的介绍正在发生的事情,因为我不得不切断一些复杂的代码,我真的希望别人可能会看到产生错误的原因.

非常感谢提前至少看看!

编辑:

这就是方法的样子.我没有改变任何东西,以显示其中的真实内容.我希望对某些人有意义:

private Rule GetRuleByNameOrId(string stName, List<Rule> rules)
{
    if(rules != null)
    { …
Run Code Online (Sandbox Code Playgroud)

c# indexing list argumentexception

-1
推荐指数
1
解决办法
268
查看次数

它对C语言中的(; 1;)意味着什么?

for(;1;)在C语言中它意味着什么?

它是否与for(;;)无限循环意义相同?

我知道输入1的位置是变量的条件部分,但在这个for循环中,我不相信它是无限循环.

c for-loop

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

如何等待async void完成?

我需要等待我async void完成.它有一些await Task.Delay功能,我需要它们继续之前完成.这个空格不会返回任何内容,所以我没有看到制作它的理由async Task<>,我也在这个空格内乱洗一个数组,我声明了一些变量.那我该怎么做呢?是async Task<>唯一的方法吗?我的空虚并不期待任何参数/输入.

c# asynchronous task async-await

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

并联电子表格装置

我正在尝试使用电子表格工具和 Parallel.ForEach 生成一个 excel 文件,用于在单元格中写入,有时会出现空引用异常。我需要做任何设置或配置吗?

c# spreadsheetgear async-await

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

等待只完成一项任务

假设我有两个任务,具有以下要求:

  1. 两者都是异步的.
  2. 两者并行运行
  3. 在其中一个完成的那一刻,我需要知道哪一个做了.

我提出了以下代码,但它只是在两个任务开始后挂起(WaitAny函数永远不会返回).我在Run函数下也得到了一条波浪线,告诉我在其中添加await,但当我尝试在Task.WaitAny前面添加它时,VS会抱怨.我应该在另一个任务中包装WaitAny吗?我究竟做错了什么?

async void Run()
{
    Task task1 = Task1();
    Task task2 = Task2();

    int completedTaskIdx = Task.WaitAny(task1, task2);

    Debug.WriteLine("completedTaskIdx = {0}", completedTaskIdx.ToString());
}

async Task Task1()
{
    Debug.WriteLine("Task 1 Start");
    await Task.Delay(5000);
    Debug.WriteLine("Task 1 Stop");
}

async Task Task2()
{
    Debug.WriteLine("Task 2 Start");
    await Task.Delay(10000);
    Debug.WriteLine("Task 2 Stop");
}
Run Code Online (Sandbox Code Playgroud)

c# task-parallel-library

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

C# 中的字符串反转

例如,我的输入是my name is abcd
我需要显示,正如dcba si eman ym
我在下面所做的那样,输出为abcd is name my
但不知道下一步该做什么

static void Main(string[] args)
{
    Console.WriteLine("Enter a string: ");
    string[] input = Console.ReadLine().Split(' ');

    for (int i = input.Length-1; i >=0; i--)
    {
        Console.Write(input[i]+" ");
    }
    Console.ReadKey();
}
Run Code Online (Sandbox Code Playgroud)

c# arrays string

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

使用linq获取对象的总和

我有如下列表.

名单

  • 3约翰
  • 1 Scully
  • 4爱德华
  • 9金

试图用linq转换为;

名单

  • 3约翰
  • 4 Scully
  • 8爱德华
  • 17金

如果没有for循环我怎么能这样做.我想用linq实现这个目标.

c# linq sum

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

编辑注册表

如何在不使用c#重启/注销的情况下编辑即时发生的注册表设置?

谢谢!

c# registry

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

类中的clss,null引用异常,C#

我的班级看起来像这样.

public class LogSettings
{
    public string attributeName { get; set; }//TODO: change the variable name

    public Warnings[] warnings = new Warnings[3];
}

public class Warnings
{
   public string typeOfWarning {get; set;}

    public bool isAbsolute { get; set; }

    public decimal numUpDownValue { get; set; }

    public LogSettingActions[] actionItems = new LogSettingActions[10];
}

public class LogSettingActions
{
    public string actionItem{ get; set;}
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试创建Warnings实例时,它会抛出NullReference错误.

var rows = FindChilds<ctlLogConfigRow>(lvLogConfigTemplate);
foreach (var row in rows)
{
    LogSettings instance = new LogSettings();
    instance.attributeName …
Run Code Online (Sandbox Code Playgroud)

c#

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

操作顺序简单的脑筋急转弯

我有一段简单的代码,没有达到我的预期.这段代码有什么问题?

int value1 = (int).5*100;
Run Code Online (Sandbox Code Playgroud)

这很容易,但通过我循环好一刻.当然,答案是微不足道的,已经知道了.但是,我认为有人思考可能会很有趣.

信用将给予第一个提出正确解决方案并解释原因的人.

c# operator-precedence

-5
推荐指数
2
解决办法
1120
查看次数