小编dev*_*hog的帖子

是否使用async/await创建一个新线程?

我是TPL的新手,我想知道:C#5.0中新增的异步编程支持(通过new asyncawait关键字)如何与线程的创建有关?

具体来说,async/await每次使用它们时是否使用创建新线程?如果有许多嵌套方法使用async/await,是否为每个方法创建了一个新线程?

c# multithreading task-parallel-library async-await c#-5.0

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

为什么.net 4.0项目不能引用4.5程序集?

我正在开发一个针对.NET 4.0的项目,现在我需要引用一个针对.NET 4.5构建的第三方dll.似乎visual studio不接受这个?为什么?VS告诉我当前上下文中不存在dll名称.

c# .net-4.5

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

linq.first()与array [0]之间的区别

我想知道在list.first()和list [0]的引擎下发生了什么,并且表现更好.

比如哪个更快?

for(int i = 0; i < 999999999999... i++)
{
    str.Split(';').First() vs. str.Split(';')[0]

    list.Where(x => x > 1).First() vs. list.Where(x => x > 1).ToList()[0]
}
Run Code Online (Sandbox Code Playgroud)

对不起如果有重复的问题

c#

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

如果方法抛出异常,则从方法返回值

这是星期一,我有一个关于C#基础知识的问题.如果方法抛出异常,方法的返回值会发生什么变化?

具体来说,当在方法中抛出异常并且对返回值产生什么影响时,"引擎盖下"会发生什么?在这种情况下,如何在内部计算回报值?

假设有两种情况:一种是返回值是类型int而另一种是类型object.是否default(T)会发生异常时被内部调用?在这种情况下,我应该考虑类型的返回值int是零而对象的返回值是null

.net c# exception-handling

7
推荐指数
1
解决办法
1194
查看次数

Linq in For Loop

这个linq语句是否会在每个循环中执行?以某种方式for循环存储linq结果吗?

for(int i = 0; i < mylist.Where(x => x > 10).ToList().Count; i++)
Run Code Online (Sandbox Code Playgroud)

对不起,如果有重复

c#

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

如果声明与关键字和比较为空

我今天在我的电脑上安装了Reshaper来检查它,每当我在我的代码中有以下声明时,我从Resharper得到一个信息,比较Null没有必要.为什么?

这是声明:

if (dataGrid.ItemsSource != null && dataGrid.ItemsSource is DataGridCollectionView)
Run Code Online (Sandbox Code Playgroud)

我正在检查类型是否是我想要的类型,如果值不是Null.

我要求这样做是有道理的,因为尽管值可能仍然存在,但类型可能是真的Null.我想我必须在关于此的文档中遗漏一些东西.

为什么Reshaper说我不需要比较null?

我错过了什么?

.net c# null typechecking

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

执行catch语句中的所有内容,而不会抛出更多错误

我有一段代码,我尝试一次签署许多代表,但如果其中任何一个为null,我必须取消所有其他代理.

try
{
    this.var1.asdf += ...

    this.var2.asdf += ...

    this.var3.asdf += ...

    this.var4.asdf += ...

    //and so on
}
catch
{
    try {
    this.var1.asdf -= ...
    }catch{}

    try{
    this.var2.asdf -= ...
    }catch{}

    try{
    this.var3.asdf -= ...
    }catch{}

    //and so on
}
Run Code Online (Sandbox Code Playgroud)

我如何避免所有那些尝试捕获大捕获?我也不想使用"if not null statements".我想继续在catch块内的所有委托,无论它们是否可能抛出空引用异常.所有行都需要在catch块内执行.

有没有办法告诉catch不要抛出任何进一步的错误并运行它的所有代码?

c#

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

检查Null运算符是否深入

这是带有null运算符的语句.

this.Str = this.Str ?? "test";
Run Code Online (Sandbox Code Playgroud)

我知道当str为null时,"test"字符串值将被设置为str变量.

到目前为止这么好,但实际的问题是str首先不是null时发生的事情.

如果str不为空,这是否发生在引擎盖下?

this.Str = this.Str
Run Code Online (Sandbox Code Playgroud)

这意味着无论如何都会被召唤,对吧?此外,即使值没有改变,我将在setter中调用自定义逻辑,对吗?

我希望如果str不为null,则不会使用相同的值调用setter.

有人对此有深入了解吗?

很抱歉,如果这是重复的,请在评论中告诉我,我将删除此问题.

c#

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

返回之前或之后的触发代码

如何在调用 return 之前/之后执行代码的某些部分。例如 return 可能在一个方法中被多次调用,因此我不希望在 return 之前复制粘贴相同的行。

我可能是错的,但有些人告诉我,try 块使代码运行缓慢,并且我的方法被调用了 1000 多次,因此即使可以使用 try/finally 块完成此任务,我也想避免它。

例子:

void method()
{
 MyObject activator = new ...
 AnotherObject something = new ...
 SomethingElse asdf = new ...
 // some other variables 
 if(..)
    // Deactivate activator, close things, confirm user exited
    // Do some post calculations
   return;
 if(..)
    // Deactivate activator, close things, confirm user exited
    // Do some post calculations
   return;
 if(..)
    // Deactivate activator, close things, confirm user exited
    // Do some post calculations …
Run Code Online (Sandbox Code Playgroud)

c#

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

从左到右流动的颜色变化动画

我希望动画背景颜色从黄色到红色的变化,并从左到右流动。在wpf中如何实现这种动画呢?

wpf

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