小编And*_*ker的帖子

如何明确地抛弃一个参数?

我正在打电话:

myResult = MakeMyCall(inputParams, out messages);
Run Code Online (Sandbox Code Playgroud)

但我实际上并不关心这些消息.如果它是一个输入参数我不关心我只是传入一个null.如果是回归我不关心我只是把它关掉.

有没有办法用out做类似的事情,或者我是否需要声明一个我将忽略的变量?

c# out

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

在编译时将文件复制到应用程序文件夹中

如果我有一些文件要从我的项目复制到.\bin\debug\编译文件夹中,那么我似乎必须把它们放到项目的根目录中.将它们放入子文件夹似乎将它们复制到.\bin\debug\与它们存储在同一结构中的文件夹中.

有什么方法可以避免这种情况吗?

只是要清楚:如果我有一个MyFirstConfigFile.txtMySecondConfigFile.txt一个在ConfigFiles文件夹和我设置其复制到输出复制...,那么他们出现在.\bin\debug\ConfigFiles\文件夹中.我希望它们出现在.\bin\debug\文件夹中.

c# visual-studio

83
推荐指数
4
解决办法
10万
查看次数

如何以编程方式检查C#中CheckedListBox中的项?

我有一个CheckedListBox,我想自动勾选其中的一个项目.

CheckedItems集合不允许您向其添加内容.

有什么建议?

c# checkedlistbox winforms

49
推荐指数
4
解决办法
9万
查看次数

有没有办法在c#中获取对调用对象的引用?

我想知道的是,是否可以(例如)走向堆栈帧,检查每个调用对象以查看是否匹配接口,如果是,则从中提取一些数据.

是的,我知道这是不好的做法,我想知道是否有可能.

c# reflection

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

在C#中,是否有一种检查多级空引用的简洁方法

例如,如果我想调用以下内容: person.Head.Nose.Sniff() 那么,如果我想要安全,我必须执行以下操作:

if(person != null)
    if(person.Head != null)
        if(person.Head.Nose != null)
            person.Head.Nose.Sniff();
Run Code Online (Sandbox Code Playgroud)

是否有更简单的方法来制定这个表达式?

c# null reference-type

18
推荐指数
3
解决办法
6013
查看次数

Windows如何知道.sln文件与哪个版本的Visual Studio相关?

如果我有一个VS 2005解决方案,那么它会显示为"Version:Visual Studio 2005".如果我有一个VS 2010解决方案,则sln文件显示为与此相关.

它们都有.sln后缀.那么Windows如何知道用哪个版本的VS打开它呢?

windows visual-studio

17
推荐指数
1
解决办法
4436
查看次数

用于将操作应用于不同数量的对象的C#语法

我想要做的是将lambda语法与"params"结合起来对一系列对象执行操作.

假设我想让一堆控件不可见.

经过一番摆弄后,我最终得到了一个扩展方法:

public static void On<T>(this Action<T> actionToCarryOut,params T[] listOfThings)
{
    foreach (var thing in listOfThings)
    {
        actionToCarryOut(thing);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我可以创建一个动作:

Action<Control> makeInvisible = c => c.Visible = false;
Run Code Online (Sandbox Code Playgroud)

然后调用它:

makeInvisible.On(control1,control2, control3,control4);
Run Code Online (Sandbox Code Playgroud)

这不是很好的语法 - 它感觉非常笨拙.

我可以在我的基类中创建一个方法"Apply":

protected void Apply<T>(Action<T> action, params T[] appliedTo)
{
    foreach (var item in appliedTo)
    {
        action(item);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后像这样调用它:

Apply<Control>(
    c => c.Visible = false,
    control1,
    control2,
    control3,);
Run Code Online (Sandbox Code Playgroud)

但这意味着在我需要的每个基类中重复该方法,并且我失去了类型推断的优势.

这样做有一种不那么笨拙的方式吗?

编辑:到目前为止我见过的最好的方法是流畅的方法,(通过一些调整)将允许我写:

Apply.Method((Control c) => c.Visible = false).To(
    control1, 
    control2, 
    control3, 
    control4};
Run Code Online (Sandbox Code Playgroud)

这是91个字符,而使用简单的"foreach"则为107个字符.这让我相信"foreach"可能实际上是最好的方法!

c#

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

如何在C#中旋转标签?

我想显示一个旋转90度的标签(所以我可以将一堆标签放在桌子顶部作为标题).是否有捷径可寻?

c# text winforms

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

从Angular Bootstrap中的模态返回值

我正在尝试使用Angular Bootstrap中的modal指令弹出一个对话框,更改一个值(传入),然后检索它.

但是,由于某种原因,该值永远不会在范围内更新.而且,事实上,如果我进行"更改"并在其中加入断点,似乎由于某种原因创建了另一个范围的范围.

我在这里创建了一个plunker:http://plnkr.co/edit/Vy6gLgOJbWcLsHJtaGpV?p = preview

我为此感到困惑.有任何想法吗?

angularjs angular-ui-bootstrap

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

在C#中显示只读文本的最佳方式

在文本框中显示将属性Enabled设置为false或只读设置为true的文本会在灰色文本上生成黑色,这根本不是很好阅读.

在Windows窗体中显示只读文本的最简单方法是什么?

c# winforms

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