请考虑以下代码示例:
private void AddEnvelope(MailMessage mail)
{
if (this.CopyEnvelope)
{
// Perform a few operations
}
}
Run Code Online (Sandbox Code Playgroud)
VS
private void AddEnvelope(MailMessage mail)
{
if (!this.CopyEnvelope) return;
// Perform a few operations
}
Run Code Online (Sandbox Code Playgroud)
底部代码会执行得更快吗?为什么ReSharper会提出此建议?
更新
考虑过这个问题后,答案对某些人来说似乎是显而易见的.但是我们很多开发人员从来没有习惯于在一开始就嵌套if语句.
我有一个包含5个项目的解决方案.大部分业务逻辑都位于类库项目中 - 产生1个dll.
当我构建解决方案时,它现在失败了,因为这个dll在同一解决方案中的网站项目中没有被有效地更新.
我运行了一个测试...并将类库的项目属性的文件版本更改为1.0.0.1.所以有效的v1.0.0.0不存在.
但是每次我构建时,由于某种原因 - 旧的DLL被添加到网站的bin目录中...而新的v1.0.0.1 dll被正确输出到项目bin/debug目录.
我试过删除并重新创建引用.没有快乐......不确定还有什么可做,任何建议都会受到欢迎......
更新:简化问题
当我构建类库输出时,输出成功 - 1项目构建.
它在项目bin/debug中创建了良好的DLL版本....它在网站项目中创建了旧版本的DLL .......
有什么建议从这里看?
以下是该问题的屏幕截图http://www.screencast.com/t/Mjc2NjM1ZD
谢谢
我有一个可空的布尔.什么是反转它的快速方法.换句话说,如果value为TRUE,则使其为FALSE,否则使其为TRUE.
澄清(来自评论):
预期的行为是:如果可空的bool有一个值,则反转,否则应该返回null.
我有以下接受文件名的变量:
var xtr = new XmlTextReader(xmlFileName) { WhitespaceHandling = WhitespaceHandling.None };
var xd = new XmlDocument();
xd.Load(xtr);
Run Code Online (Sandbox Code Playgroud)
我想改变它,以便我可以传入一个对象.我不想首先将对象序列化为文件.
这可能吗?
更新:
我最初的意图是获取一个xml文档,合并一些xslt(存储在一个文件中),然后输出并返回html ...像这样:
public string TransformXml(string xmlFileName, string xslFileName)
{
var xtr = new XmlTextReader(xmlFileName) { WhitespaceHandling = WhitespaceHandling.None };
var xd = new XmlDocument();
xd.Load(xtr);
var xslt = new System.Xml.Xsl.XslCompiledTransform();
xslt.Load(xslFileName);
var stm = new MemoryStream();
xslt.Transform(xd, null, stm);
stm.Position = 1;
var sr = new StreamReader(stm);
xtr.Close();
return sr.ReadToEnd();
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,我正在从文件中读取xml.现在我想要做的就是在将对象序列化到文件之前使用它.
那么让我用代码来说明我的问题
public string TransformXMLFromObject(myObjType myobj , string xsltFileName) …Run Code Online (Sandbox Code Playgroud) 使用方法: System.IO.File.Create()
文件创建后,它仍然由进程使用,我无法删除它.
任何想法我怎么能更好地创建文件,应该是一个0byte文件,然后以某种方式关闭和处置?
我想要一个包含UI的Windows窗体应用程序,但我希望它从命令行运行一些参数,可能还有一个/hide或/visible=false选项.
如何读取命令行参数?并相应调整?
我今天有一个涉及StreamReader类的问题.具体使用filename参数初始化此类,例如:
TextReader tr = new StreamReader(fileName);
Run Code Online (Sandbox Code Playgroud)
显然,当这个动作完成时,关闭流的重要性如下:
tr.Close();
Run Code Online (Sandbox Code Playgroud)
我想在尝试/最后得到这个,问题是我找不到办法做到这一点.以下是我发现的一些不适用的变化:
try
{
var serializer = new XmlSerializer(type);
TextReader tr = new StreamReader(fileName);
var obj = serializer.Deserialize(tr);
}
finally
{
tr.Close();
}
Run Code Online (Sandbox Code Playgroud)
更糟糕的是:
TextReader tr;
try
{
var serializer = new XmlSerializer(type);
tr = new StreamReader(fileName);
var obj = serializer.Deserialize(tr);
}
finally
{
tr.Close();
}
Run Code Online (Sandbox Code Playgroud)
那么有可能让StreamReader在最后关闭吗?
我的错误处理程序中有一些代码我需要针对实际错误进行测试.如何生成具有完整堆栈跟踪的错误,并且与运行时错误一样真实.
我正在使用异常的常规捕获.因此,在这种特殊情况下不需要特定类型的异常.
谢谢
我目前正在使用VS2010 Premium,并且听说Ultimate中的调试要好得多.是否真的值得升级到Ultimate以利用它们包含的新调试功能?或者是营销炒作,并不是真的可用于每天的开发场景?
我相信这个功能叫做IntelliTrace.
尝试使用ComponentSerializationService反序列化时,会填充未找到引用的错误:
public ICollection Deserialize(object serializationData)
{
var serializationStore = serializationData as SerializationStore;
var componentSerializationService = _serviceProvider.GetService(typeof(ComponentSerializationService)) as ComponentSerializationService;
var collection = componentSerializationService.Deserialize(serializationStore);
}
Run Code Online (Sandbox Code Playgroud)
错误如:
找不到类型'System.Drawing.Size'.请确保引用包含此类型的程序集.如果此类型是开发项目的一部分,请确保使用当前平台或任何CPU的设置成功构建项目.
在这里,我通过了Button控件并设置了size属性.