小编xyz*_*xyz的帖子

"开启类型"还有比这更好的选择吗?

看作C#无法打开一个Type(我收集的并不是作为特殊情况添加的,因为is-a关系意味着可能有多个不同的情况可能适用),是否有更好的方法来模拟切换类型?

void Foo(object o)
{
    if (o is A)
    {
        ((A)o).Hop();
    }
    else if (o is B)
    {
        ((B)o).Skip();
    }
    else
    {
        throw new ArgumentException("Unexpected type: " + o.GetType());
    }
}
Run Code Online (Sandbox Code Playgroud)

c# switch-statement system.type

312
推荐指数
15
解决办法
10万
查看次数

如何创建仅在系统托盘中运行的.NET Windows窗体应用程序?

要使Windows窗体应用程序在系统托盘中运行,我需要做什么?

不是可以最小化托盘的应用程序,而是仅存在于托盘中的应用程序,只有图标,工具提示和"右键单击"菜单.

.net c# system-tray winforms

209
推荐指数
8
解决办法
18万
查看次数

选择Enum类型的默认值而不必更改值

在C#中,是否可以使用属性修饰Enum类型或执行其他操作来指定默认值应该是什么,而不更改值?无论出于何种原因,所需的数字可能都是一成不变的,并且仍然可以控制默认值.

enum Orientation
{
    None = -1,
    North = 0,
    East = 1,
    South = 2,
    West = 3
}

Orientation o; // Is 'North' by default.
Run Code Online (Sandbox Code Playgroud)

.net c# enums

198
推荐指数
7
解决办法
16万
查看次数

为什么必须在作为普通的Delegate参数提供时转换lambda表达式

采取方法System.Windows.Forms.Control.Invoke(Delegate方法)

为什么会出现编译时错误:

string str = "woop";
Invoke(() => this.Text = str);
// Error: Cannot convert lambda expression to type 'System.Delegate'
// because it is not a delegate type
Run Code Online (Sandbox Code Playgroud)

但这很好用:

string str = "woop";
Invoke((Action)(() => this.Text = str));
Run Code Online (Sandbox Code Playgroud)

当方法需要普通代表时?

c# lambda delegates c#-3.0

120
推荐指数
3
解决办法
6万
查看次数

你可以制作没有制表符的有效Makefile吗?

target: dependencies
    command1
    command2
Run Code Online (Sandbox Code Playgroud)

在我的系统(Mac OS X)上,make似乎要求Makefile在每command行的内容之前有一个制表符,否则会引发语法错误.

在创建或编辑Makefile时,这是一个烦恼,因为我的编辑器设置为全时空间.

你可以制作没有制表符的有效Makefile吗?

whitespace tabs makefile spaces

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

将控制台输出镜像到文件

在C#控制台应用程序中,是否有一种智能方法可以将控制台输出镜像到文本文件中?

目前我只是将相同的字符串传递给两个Console.WriteLineInstanceOfStreamWriter.WriteLine一个日志方法.

.net c# console text file

86
推荐指数
8
解决办法
6万
查看次数

在编写任何代码之前,您如何规划应用程序的体系结构?

我挣扎的一件事是在编写任何代码之前规划应用程序的架构.

我并不是说收集需求来缩小应用程序需要做什么,而是有效地思考一个好的方法来布置整体类,数据和流程结构,并迭代这些想法,以便我有一个可靠的计划甚至在打开IDE之前的行动.目前,只需打开IDE即可轻松创建一个空白项目,开始编写位和bob,让设计从那里"长出来".

我收集UML是一种方法来做到这一点,但我没有经验,所以它似乎有点模糊.

在编写任何代码之前,如何规划应用程序的体系结构?如果UML是可行的方法,您能否为小型应用程序的开发人员推荐简明实用的介绍?

我很感激你的意见.

language-agnostic architecture oop

82
推荐指数
6
解决办法
3万
查看次数

为什么Visual C++缺少重构功能?

在Visual Studio 2008中使用C++进行编程时,为什么在使用C#时没有像重构菜单中看到的那样的功能?

我经常使用Rename,当它不存在时你真的很想念它.我确信你可以获得提供这个的插件,但为什么在使用C++时它没有集成到IDE中?这是否是因为必须解析C++的方式?

c++ visual-studio-2008 visual-studio visual-c++

78
推荐指数
3
解决办法
4万
查看次数

foreach标识符和闭包

在以下两个片段中,第一个是安全的还是你必须做第二个?

安全我的意思是每个线程保证从创建线程的相同循环迭代中调用Foo上的方法?

或者你必须将引用复制到一个新的变量"local"到循环的每次迭代?

var threads = new List<Thread>();
foreach (Foo f in ListOfFoo)
{      
    Thread thread = new Thread(() => f.DoSomething());
    threads.Add(thread);
    thread.Start();
}
Run Code Online (Sandbox Code Playgroud)

-

var threads = new List<Thread>();
foreach (Foo f in ListOfFoo)
{      
    Foo f2 = f;
    Thread thread = new Thread(() => f2.DoSomething());
    threads.Add(thread);
    thread.Start();
}
Run Code Online (Sandbox Code Playgroud)

更新:正如Jon Skeet的回答所指出的,这与线程没有任何关系.

c# closures enumeration

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

在Mac上写的核心转储在哪里?

在Mac OS X上,如果我将SIGQUIT发送到我的C程序,它会终止,但是没有核心转储文件.

您是否必须在Mac OS X上手动启用核心转储(如何?),还是将它们写入其他地方而不是工作目录?

unix macos coredump signals

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