小编Jef*_*f B的帖子

在for循环中声明的变量是局部变量?

我一直在使用C#很长时间但从未意识到以下情况:

 public static void Main()
 {
     for (int i = 0; i < 5; i++)
     {

     }

     int i = 4;  //cannot declare as 'i' is declared in child scope                
     int A = i;  //cannot assign as 'i' does not exist in this context
 }
Run Code Online (Sandbox Code Playgroud)

那么,为什么我不能在for块之外使用'i'的值,如果它不允许我声明一个带有这个名字的变量?

我认为for循环使用的迭代器变量仅在其范围内有效.

c# variables scope

134
推荐指数
6
解决办法
7238
查看次数

按任意键继续

根据Microsoft的文档,read-host让用户输入一些输入,然后按Enter继续.如果您想要"按任意键继续",则行为不正确.(等等...... Any钥匙在哪里?!)

有没有办法实现这个目标?有点像read-char

我已经尝试搜索"单字符输入"和"powershell输入",看看我是否能找到所有获取输入的方法列表而没有太多运气.这看起来希望使用一些堆栈溢出问题read-host实际的工作"按任意键..."功能.

powershell

63
推荐指数
3
解决办法
12万
查看次数

鸭子在C#编译器中输入

注意不是关于如何在C#中实现或模拟duck typing的问题...

几年来,我的印象是某些C#语言特性对语言本身定义的数据结构感到沮丧(这对我来说似乎总是一个奇怪的鸡蛋和鸡蛋场景).例如,我的印象是foreach循环只能用于实现的类型IEnumerable.

从那时起,我开始明白C#编译器使用duck typing来确定是否可以在foreach循环中使用对象,GetEnumerator而不是查找方法IEnumerable.这很有意义,因为它消除了鸡蛋和鸡蛋的难题.

我有点困惑,为什么这不是using块的情况似乎并非如此IDisposable.是否有任何特殊原因编译器不能使用duck typing并查找Dispose方法?造成这种不一致的原因是什么?

或许还有其他东西在IDisposable的引擎盖下进行?

讨论为什么你会永远有未实现IDisposable是这个问题的范围之外的Dispose方法的对象:)

c# compiler-construction idisposable duck-typing

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

如何修复"命名空间x已经包含x的定义"错误?转换为VS2010后发生了变化

特别是错误发生在Resources.Designer.cs:

错误2名称空间'ModulusFE'已包含'StockChartX'的定义Resources.Designer.cs 11 21 ModulusFE.StockChartX

我用谷歌搜索了这个并且仍然很困惑.有谁知道我可能尝试的任何事情?

我尝试过重建和清理,以及重命名Resources.Designer.cs文件,希望它能重建,但没有运气.

代码的顶部说:

// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.225
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
Run Code Online (Sandbox Code Playgroud)

任何想法都将不胜感激.

c# compiler-errors visual-studio-2010

50
推荐指数
7
解决办法
12万
查看次数

如何使用Python在我的Web浏览器中打开网站?

我想使用Python在本地计算机的网络浏览器(Chrome或Internet Explorer)中打开一个网站.

open("http://google.co.kr") # something like this  
Run Code Online (Sandbox Code Playgroud)

有没有可以为我做这个的模块?

python

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

当前时间戳作为Java中的文件名

我想用我的Java应用程序用当前时间戳命名新文件.

我需要帮助.如何命名使用当前时间戳创建的新文件?我应该包括哪些课程?

java timestamp

42
推荐指数
3
解决办法
8万
查看次数

如何清除RichTextBox中的文本内容

获取RichTextBox中的文本后,我想清除文本.我怎样才能做到这一点?

TextRange txt = new TextRange(richtxtSNotice.Document.ContentStart, richtxtSNotice.Document.ContentEnd);
MessageBox.Show(txt.Text);
Run Code Online (Sandbox Code Playgroud)

c# wpf

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

如何正确使用TransactionScope?

我总是想尝试使用,TransactionScope但我无法弄清楚人们对它的看法是否有用.让我们举一个例子:

using(TransactionScope tran = new TransactionScope()) {
    CallAMethodThatDoesSomeWork1();
    CallAMethodThatDoesSomeWork2();
    tran.Complete();
}
Run Code Online (Sandbox Code Playgroud)

所以最基本的问题是:我如何编写" CallAMethodThatDoesSomeWork1()"以便它知道如果让我们说" CallAMethodThatDoesSomeWork2()"抛出异常会如何推回其行为?

.net c# vb.net transactionscope

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

类似于Python中的Pass for C#

在python我们可以......

a = 5
if a == 5:
    pass #Do Nothing
else:
    print "Hello World"
Run Code Online (Sandbox Code Playgroud)

在C#中有类似的方法吗?

c# python

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

如何查找列表中的元素是否在另一个列表中?

我想知道在第二个列表中是否可以找到第一个列表中的至少一个元素.

我可以看到两种方法.假设我们的列表是:

List<string> list1 = new[] { "A", "C", "F", "H", "I" };
List<string> list2 = new[] { "B", "D", "F", "G", "I" };
Run Code Online (Sandbox Code Playgroud)

第一种方法使用循环:

bool isFound = false;
foreach (item1 in list1)
{
    if (list2.Contains(item1))
    {
        isFound = true;
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

第二个直接使用Linq:

bool isFound = list1.Intersect(list2).Any();
Run Code Online (Sandbox Code Playgroud)

第一个是写的很长,而不是非常直接/易于阅读.第二个是短而清晰的,但表现很低,特别是在大型名单上.

这可能是一种优雅的方式吗?

c# linq performance

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