我正在阅读有关debuggerstepperboundary属性的内容,并且网站表示它在上下文切换中很有用.
什么是上下文切换?我假设它是从一个线程切换到另一个线程,或者在执行或安全上下文中?但是,这些都不是特别受过教育的猜测,所以我在这里问.
很多时候,提到只捕获我可以处理的异常(抛出,包装和/或记录,或执行一些其他操作).
哪些例外无法处理?这是不应该被抓住的意思吗?我知道不应该捕获可能表示对象引用为null的异常,因为它们是编程错误而不是用户激发的.还有其他例子吗?另一个是ExecutionEngineException.
此外,catch块中的操作过程总是在rethrow,wrap/rethrow和log之间吗?是否有需要在catch块中执行某些其他操作的情况?
谢谢
using(...)语句是try {} finally {}的语法糖.
但是,如果我有一个如下所示的使用声明:
using (FileStream fs = File.Open(path))
{
}
Run Code Online (Sandbox Code Playgroud)
现在我想要捕获打开此文件可能导致的异常(这是相当高风险的代码,因为它可能因环境而失败),但是如果我在里面写try-catch会不会重复?当代码被编译为IL时,我假设当代码被JIT时,重复将被删除?
但是,我想要捕获打开文件可能导致的异常(所以我应该将try-catch包装在using语句的作用域之外),以及我在using块中做的任何异常,所以我应该添加try-catch在街区内.
这似乎是我在CLR可能在里面做了很多重复.CLR是否添加了catch子句?
我的同事认为使用声明是混乱的(但这是因为由于我需要对它们进行硬编码,所以单行很长,因为我需要非常快速地更改它们并且无法访问代码库的其他部分).说同事不使用using语句,但是using语句和try-finally/try-catch-finally之间是否存在任何功能差异?我确实看到了一个这样的案例,其中WCF服务有一个关于使用finally和返回值的一个鲜为人知的角落案例(最后的事情).解决方案是使用检查块.在C#中有这样的东西吗?
另一方面,是否所有类型都实现了非托管资源的IDisposale所有者?与我的朋友的讨论指出了不是的答案.(我也在本论坛的使用部分阅读了一些主题,其中有一些非常好的知识).
在.NET中,每个解决方案/项目都有SUO,SLN,Proj文件.虽然我知道这些文件是什么,但手动编辑是否明智?他们甚至需要编辑吗?如果是这样,最好的方法是什么?
谢谢
我一直在阅读有关继续传递样式编程技术(C#3.0实现)的内容.
为何/何时使用此技术会有用?
如何实现这一点以获得那些真正的长链?这与currying相同(这会在google中产生更好的搜索结果)吗?
谢谢
我正在阅读有关线程和锁定的内容.通常的做法是你不能(不应该)锁定值类型.
所以问题是,锁定值类型的推荐方法是什么?我知道有几种方法可以做一件事,但我还没有看到一个例子.虽然在MSDN论坛上有一个很好的主题,但我现在似乎无法找到它.
谢谢
我想编写一个存储过程,它将使用一个参数,它将是表名.
例如:
@tablename << Parameter
SELECT * FROM @tablename
Run Code Online (Sandbox Code Playgroud)
这怎么可能?
我写了这个:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[GetAllInterviewQuestions]
@Alias varchar = null
AS
BEGIN
Exec('Select * FROM Table as ' @Alias)
END
Run Code Online (Sandbox Code Playgroud)
但它说@Alias附近的语法不正确.
Entity Framework v4是否支持批量更新/插入,而不是将> 1命令发送到db,它可以一次性向DB发送> 1命令?
谢谢
通常在使用VS2010 Ultimate进行开发时,我想检查一个值在代码库中的位置(所以这是一个赋值).
有没有办法,使用VS2010 Ultimate或第三方调试工具,能够获得已设置或获得变量的代码库中的所有位置?
c# ×4
.net ×2
debugging ×1
exception ×1
locking ×1
mocking ×1
sql-server ×1
t-sql ×1
unit-testing ×1
using ×1