我总是将我的字符串初始化为NULL,认为NULL表示没有值,""或String.Empty是一个有效值.我最近看到了更多代码示例,其中String.Empty被视为默认值或不表示任何值.这让我感到很奇怪,在c#中新添加的可空类型似乎我们通过不使用NULL来表示"无值"来向后调整字符串.
您使用什么作为默认初始化程序?为什么?
编辑:根据答案,我进一步思考
避免错误处理如果值不应为null,为什么它NULL首先设置为?也许最好在发生错误的位置识别错误,而不是在代码库的其余部分覆盖错误?
避免空检查如果您厌倦了在代码中进行空检查,那么抽象空检查是不是更好?也许包装(或扩展!)字符串方法以使它们NULL安全吗?如果你经常使用String.Empty并且null正好进入你的系统会发生什么,你是否开始添加NULL检查?
我忍不住回到懒惰的意见.如果你使用''而不是null在他的数据库中使用',那么任何DBA都会狠狠地打你九种方式.我认为同样的原则适用于编程,并且应该有人打击那些使用String.Empty而不是NULL代表没有价值的人.
相关问题
如果您(或您的组织)希望对您的代码进行彻底的单元测试,那么您如何衡量您的成功或质量?
我有一个具有基本Devise身份验证的应用程序.登录后,我想查找用户帐户(用户belongs_to帐户,帐户has_many用户),并将其存储在会话中,以便它可用@current_user.
这样存储会话的轨道方式是什么?在成功登录后,我可以使用Devise来执行代码吗?
我有两个生成脚手架的模型,一个是LogBook,另一个是LogEntry.我想在LogBook显示页面上为LogEntry渲染部分表单.当我在局部调用渲染时,我收到此错误:
undefined method `model_name' for NilClass:Class
Run Code Online (Sandbox Code Playgroud)
我假设这是因为默认_form使用的实例变量在从单独的控制器调用时不存在.所以我尝试将LogEntry _form.html.erb转换为使用局部变量并通过render调用传递它们.在此之后是错误:
Model LogEntry does not respond to Text
Run Code Online (Sandbox Code Playgroud)
如何将此部分包含在显示页面中,形成不同的控制器?
楷模:
class LogBook < ActiveRecord::Base
belongs_to :User
has_many :LogEntries, :dependent => :destroy
end
class LogEntry < ActiveRecord::Base
belongs_to :LogBook, :class_name => "log_book", :foreign_key => "log_book_id"
end
Run Code Online (Sandbox Code Playgroud)
LogEntry _form.html.erb(使用局部变量):
<%= form_for(log_entry) do |f| %>
<% if log_entry.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(log_entry.errors.count, "error") %> prohibited this log_entry from being saved:</h2>
<ul>
<% log_entry.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% …Run Code Online (Sandbox Code Playgroud) 我想在生成服务代理时使用svcutil将多个wsdl命名空间映射到clr命名空间.我使用名称空间的强版本,因此生成的clr名称空间很笨拙,如果wsdl/xsd名称空间版本发生变化,可能意味着许多客户端代码更改.一个代码示例可以更好地显示我想要的内容.
// Service code
namespace TestService.StoreService
{
[DataContract(Namespace = "http://mydomain.com/xsd/Model/Store/2009/07/01")]
public class Address
{
[DataMember(IsRequired = true, Order = 0)]
public string street { get; set; }
}
[ServiceContract(Namespace = "http://mydomain.com/wsdl/StoreService-v1.0")]
public interface IStoreService
{
[OperationContract]
List<Customer> GetAllCustomersForStore(int storeId);
[OperationContract]
Address GetStoreAddress(int storeId);
}
public class StoreService : IStoreService
{
public List<Customer> GetAllCustomersForStore(int storeId)
{
throw new NotImplementedException();
}
public Address GetStoreAddress(int storeId)
{
throw new NotImplementedException();
}
}
}
namespace TestService.CustomerService
{
[DataContract(Namespace = "http://mydomain.com/xsd/Model/Customer/2009/07/01")]
public class Address
{ …Run Code Online (Sandbox Code Playgroud) 我可以查询AD并找到所有IIS站点及其虚拟目录,现在我需要能够更新这些主目录并保存更改.
在我获取目录条目后,我可以使用显示站点路径$site.Path,但设置它似乎没有任何影响.它永远不会改变实际存储的路径.
我试过了$site.Path = <new path>,$site.Put( "Path", <new path> )但这些似乎都没有影响存储的路径.
$site = $iis.psbase.children |
where {$_.keyType -eq "iiswebserver"} |
where {$_.psbase.properties.servercomment -eq $siteConfig.name };
$s = [ADSI]($site.psbase.path + "/ROOT");
$s.Path
# $s.Path = $siteConfig.path
# $s.Put("Path", $siteConfig.path )
$s.psbase.CommitChanges()
Run Code Online (Sandbox Code Playgroud) 我在Web上发现了很多关于将ASP.NET成员资格提供程序与wsHttpBindings一起使用的资料,但我没有看到任何与webHttpBindings一起使用它的参考资料.
我正在寻找一个可以在两种情况下工作的系统:
这可能是使用内置框架(即只是通过配置)?如果是这样,我该如何配置服务?用户如何将凭据传递给REST服务?
我正在寻找可以与.Net项目一起使用的基于文件的存储解决方案.它需要一个类似sql的接口来存储和检索数据.它们需要相对较少的开销,并且不需要最终用户安装任何其他组件.我正在跳一个我可以参考和使用的.dll.如果与ORM密切相关,则奖励积分.
我目前最喜欢的是SQLite,那里有哪些更好的我应该知道的?
我有一种(健康?)对访问的偏见,因为我觉得它对于我需要的东西而言过于复杂,但我仍然愿意相信.
PS:"不,没有什么比SQLite更好"是一个非常好的答案.
我有一个ASP.NET网站,我想找到/ bin/[Configuration]文件夹来使用外部工具(exe文件).当我使用反射获取调用程序集位置时,它返回类似于:
C:\Windows\Microsoft.NET\Framework\\...\Temporary ASP.NET Files\a1388a5e\\...\my.dll
由于每个dll在临时ASP.NET文件下都有自己的目录,因此对我来说失败了.
如何获取已编译的二进制文件夹的位置,其中dll和.exe是(即bin /)而不是asp.net的临时缓存?
笔记
我正在向潜在客户邮寄提醒,并且时间转换为我们的服务器时区EST(我认为它目前正在使用EDT,但视情况而定).我需要为潜在客户存储时区并将时间转换为当前时区.
我可以存储偏移量,但我担心夏令时.我总是可以存储非DST偏移量,但是当在DST之前安排注册约会但在DST之后发生时会导致问题.
理想情况下,我想存储一个时区,并让salesforce将日期时间转换为该时区,以便在必要时将DST计算在内.我怎样才能做到这一点?
asp.net ×2
c# ×2
wcf ×2
database ×1
devise ×1
iis ×1
partials ×1
powershell ×1
reflection ×1
rest ×1
ruby ×1
salesforce ×1
sql ×1
sqlite ×1
svcutil.exe ×1
tdd ×1
testing ×1
unit-testing ×1
web-services ×1