这似乎是一个相当简单的问题,但在搜索之后我找不到这个特殊的用例.
假设我有一个简单的方法,比如确定某个进程是否打开了一个文件.我可以这样做(不是100%正确,但相当不错):
public bool IsOpen(string fileName)
{
try
{
File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.None);
}
catch
{
// if an exception is thrown, the file must be opened by some other process
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
(显然,这不是确定这一点的最佳或甚至是正确的方法 - File.Open会抛出许多不同的异常,所有异常都具有不同的含义,但它适用于此示例)
现在File.Open调用返回a FileStream,并FileStream实现IDisposable.通常我们想要FileStream在使用块中包装任何实例化的用法,以确保它们被正确处理掉.但是在我们实际上没有将返回值分配给任何东西的情况下会发生什么?是否仍然需要处理FileStream,如下:
try
{
using (File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.None));
{ /* nop */ }
}
catch
{
return true;
}
Run Code Online (Sandbox Code Playgroud)
我应该创建一个FileStream实例并处理它吗?
try
{
using (FileStream fs = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.None)); …Run Code Online (Sandbox Code Playgroud) 我有一个.NET应用程序需要监视WebSphere MQ中的队列.我需要对每条消息做出反应,而不会影响当前进程.客户端应用程序无法明确地向我发送相同的消息.
我可以在不将其从队列中删除的情况下阅读消息吗?我可以收到每封邮件的通知吗?我可以配置MQ来复制当前队列吗?
还有其他解决方案吗?
我有一个存储过程,以SELECT结尾,返回一个记录集.我可以在另一个存储过程中调用它,如下所示:
EXEC procedure @param
Run Code Online (Sandbox Code Playgroud)
如何获取返回的记录集?谢谢
哪个是处理异常的最佳位置?BLL、DAL 或 PL ?
我应该允许 DAL 和 BLL 中的方法在链上抛出异常并让 PL 处理它们吗?还是我应该在 BLL 处理它们?
例如
如果我的 DAL 中有一个方法发出“ExecuteNonQuery”并更新一些记录,并且由于一个或多个原因,0 行会受到影响。现在,我应该如何让我的 PL 知道是否发生了异常或确实没有与条件匹配的行。我应该在我的 PL 代码中使用“try catch”并通过异常让它知道,还是应该在 DAL 处理异常并返回一些像 (-1) 这样的特殊代码让 PL 区分(异常)和(否)行匹配条件,即受影响的零行)?
我想谷歌地球整合到谷歌地图,我看到它可能在v2中.但我找不到任何关于如何使用v3的文档.
假设我在Label旁边有一个简单的TextBox:
<StackPanel>
<StackPanel Orientation="Horizontal">
<Label Margin="3">MyLabel</Label>
<TextBox Margin="3" Width="100">MyText</TextBox>
</StackPanel>
...
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
这产生以下结果:
如您所见,MyLabel和MyText的基线未对齐,看起来很难看.当然,我可以开始玩边缘直到它们匹配,但由于这是一个常见的要求,我确信WPF提供了一个更简单,更优雅的解决方案,我还没有找到...
我知道这可能是意见,但我正在寻找最佳实践.
据我所知,IQueryable<T>实现IEnumerable<T>,所以在我的DAL中,我目前有方法签名,如下所示:
IEnumerable<Product> GetProducts();
IEnumerable<Product> GetProductsByCategory(int cateogoryId);
Product GetProduct(int productId);
Run Code Online (Sandbox Code Playgroud)
我应该IQueryable<T>在这里使用吗?
这两种方法的优点和缺点是什么?
请注意,我打算使用Repository模式,所以我将有一个这样的类:
public class ProductRepository {
DBDataContext db = new DBDataContext(<!-- connection string -->);
public IEnumerable<Product> GetProductsNew(int daysOld) {
return db.GetProducts()
.Where(p => p.AddedDateTime > DateTime.Now.AddDays(-daysOld ));
}
}
Run Code Online (Sandbox Code Playgroud)
我应该改变我IEnumerable<T>的IQueryable<T>吗?一个或另一个有哪些优点/缺点?
我通常使用Vim,它比其他编辑器能够更快地执行某些操作.然而,由于我住在阿根廷,我有一个拉丁美洲键盘,这使得Vim中的所有东西都相当慢(写/搜索,我必须按Shift + 7).
因为我不想一直改变键盘布局(而且很难习惯按下英文键盘中的符号),我想知道是否有一个vim插件(.vimrc文件)可能是对国际用户有用.
只是为了它,这里是拉丁美洲键盘的布局:
alt text http://pages.slc.edu/~support/files/keyboard-layout-spanish-latin-american.png
顺便说一句,我很想去购买英文键盘,但不幸的是我使用的是笔记本电脑.
我最近在使用我的一个Delphi 2010项目时遇到了一些麻烦.有时候,当我打开一个表单作为模态对话框时,应用程序会停止显示在ALT-TAB列表中,直到我关闭对话框.它仍在任务栏中,但不在ALT-TAB中,这意味着我不能在不使用鼠标的情况下切换到它.
在Windows 7,64位下运行.谁看过这个吗?知道是什么导致它以及如何解决它?
我无法编译Java程序,因为即使它们同时位于构建类路径和运行时类路径中,也找不到某些导入的包.
下图显示了问题.我在eclipse中突出显示了gdata-media软件包.它对应于第一个编译错误.
截图http://img3.imageshack.us/img3/5199/classesnotavailable.png 点击查看完整尺寸
我究竟做错了什么?
c# ×2
layout ×2
.net ×1
alignment ×1
alt-tab ×1
architecture ×1
baseline ×1
classpath ×1
datacontext ×1
delphi ×1
delphi-2010 ×1
eclipse ×1
google-earth ×1
google-maps ×1
ibm-mq ×1
idisposable ×1
iqueryable ×1
java ×1
keyboard ×1
layered ×1
linq-to-sql ×1
shortcut ×1
sql ×1
t-sql ×1
vim ×1
windows-7 ×1
wpf ×1