我有一个类Person,我必须覆盖它的Equals和GetHashCode方法.如果名称匹配,则两个人对象等于电子邮件匹配.使用相当高效的哈希函数,这样做的好方法是什么?
class Person
{
string Name
string Email
public override Equals(object obj)
{
if (ReferenceEquals(obj, null))
return false;
if (ReferenceEquals(this, obj))
return true;
if (obj is Person)
{
Person person = (Person)obj;
return
(this.Name == person.Name)
|| (this.Email == person.Email);
}
return false;
}
public override GetHashCode()
{
// What's a good way to implement?
}
}
Run Code Online (Sandbox Code Playgroud) 这让我很难过,我在Android 2.1-r8 SDK中使用它:
ProgressDialog.show(getApplicationContext(), ....);
Run Code Online (Sandbox Code Playgroud)
还有
Toast t = Toast.makeText(getApplicationContext(),....);
Run Code Online (Sandbox Code Playgroud)
使用getApplicationContext()
崩溃ProgressDialog
和Toast
....导致我这个问题:
尽管分享了"上下文"的措辞,但活动上下文和应用程序上下文之间的实际差异是什么?
我正在使用jQuery jsTree插件复选框.好的,我已经找到了如何处理检查或取消选中复选框的事件.如果它有用我可以粘贴代码:
.bind("check_node.jstree", function(e, data)
{
if(data.rslt.obj !== undefined && data.rslt.obj.attr(\'id\') !== undefined)
{
jQuery.ajax({
async : false,
type: "POST",
dataType: "json",
url: "adsmanager/adsfields/ajaxappendcategory",
data:
{
"id" : data.rslt.obj.attr(\'id\'),
"itemId" : "' . Yii::app()->getRequest()->getParam('id') . '",
},
success: function(r)
{
if(r === undefined || r.status === undefined || !r.status)
{
data.rslt.obj.removeClass(\'jstree-checked\');
data.rslt.obj.addClass(\'jstree-unchecked\');
}
else
{
niceBox(\'ok\');
}
}
});
}
return true;
})
Run Code Online (Sandbox Code Playgroud)
有了这一切都没关系,但知道我无法找到任何地方如何检查树加载的复选框,例如,如果我使用jsTree像我的新闻项目的类别选择器当我创建新的新闻项目一切正常,当我想要更新该项我需要jsTree与选定的类别,这是我无法找到如何选择加载jsTree节点的任何示例.
对这个问题有任何帮助吗?
我在Sql Server 2008 r2 DB中有一个表.每隔几秒钟我就会将数据导入此表.有一次,导入失败,因此它不断导入相同的数据,创建重复数据.(基本上,如果导入读取20行,导入19并且在20上失败..则那些19不在事务中......因此被插入).
无论如何,我试图找出如何删除所有重复项和第一个(原始)插入行?
这是表模式 - 请注意,有一些可以为空的字段.
CREATE TABLE [dbo].[LogEntries](
[LogEntryId] [int] IDENTITY(1,1) NOT NULL,
[GameFileId] [int] NOT NULL,
[CreatedOn] [datetimeoffset](7) NOT NULL,
[EventTypeId] [tinyint] NOT NULL,
[Message] [nvarchar](max) NULL,
[Code] [int] NULL,
[Violation] [nvarchar](100) NULL,
[ClientName] [nvarchar](100) NULL,
[ClientGuid] [nvarchar](50) NULL,
[ClientGuidReversed] [nvarchar](50) NULL,
[ClientIpAndPort] [nvarchar](50) NULL,
CONSTRAINT [PK_LogEntries] PRIMARY KEY CLUSTERED
(
[LogEntryId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
干杯:) …
我们有一个非常大的历史表,其中包含一个最多500个UTF8字符的列,并且磁盘空间增长得非常快!
我们每天至少有200万行......我们想知道哪个会做得更好(主要是在存储方面,但在性能方面)?TEXT或VARCHAR(512)?
因此,如果我有一个通用的GPS Lat/Lng点,是否可以说,是的,这一点是在建筑物中,还是这一点在汽车可以行驶的道路上?
我开发了一个AIR应用程序,现在我想在安装过程中添加其中一个许可证文本框架.
这可能吗?
我有一个使用ASP.NET MVC,Unity和Linq to SQL的应用程序.
统一寄存器容器的类型AcmeDataContext
,从继承System.Data.Linq.DataContext
,具有LifetimeManager
使用HttpContext
.
有一个控制器工厂使用统一容器获取控制器实例.我在构造函数上设置了所有依赖项,如下所示:
// Initialize a new instance of the EmployeeController class
public EmployeeController(IEmployeeService service)
// Initializes a new instance of the EmployeeService class
public EmployeeService(IEmployeeRepository repository) : IEmployeeService
// Initialize a new instance of the EmployeeRepository class
public EmployeeRepository(AcmeDataContext dataContext) : IEmployeeRepository
Run Code Online (Sandbox Code Playgroud)
每当需要构造函数时,unity容器就会解析一个连接,用于解析数据上下文,然后是存储库,然后是服务,最后是控制器.
问题是IEmployeeRepository
暴露SubmitChanges
方法,因为服务类没有DataContext
引用.
我被告知应该从存储库外部管理工作单元,所以我似乎应该SubmitChanges
从我的存储库中删除它.这是为什么?
如果这是真的,这是否意味着我必须声明一个IUnitOfWork
接口并使每个服务类依赖它?我还能如何让我的服务类来管理工作单元?
asp.net-mvc domain-driven-design dependency-injection inversion-of-control linq-to-sql
我想就何时/是否可以将代码置于代码隐藏中获得一些意见.我现在只有不到一年的时间.所以,我仍然认为自己非常"绿色".我来自德尔福背景.因此,学习曲线至少可以说 - 学习WPF,XAML,C#,Unity,Prism,MEF,.NET,MVVM等......有趣但非常具有挑战性.
当我刚开始不到一年的时候,办公室里的想法是代码隐藏的代码,如果可能的话,没有查看虚拟机中的特定代码.所以,我已经多次绞尽脑汁来确定如何推送字面上的一切进入虚拟机并保持我认为是从VM中查看特定代码只是为了几乎每次都出现短缺.我现在已经到了这一点,我开始认为代码隐藏并不总是坏或"错误".我最近试图通过尝试将任何代码隐藏到VM中来清理我们的一些视图,这导致我在http://blog.functionalfun.net/2008/09/hooking-up-commands-找到一个整洁的工厂类.to-events-in-wpf.html.这允许您将路由事件绑定到ICommand
在VM中.它就像一个魅力,我能够显着减少我们的一些代码隐藏.但是,在这样做之后,我现在质疑我这样做的决定.我的方法遵循的原则是,除非绝对需要,否则代码隐藏是错误/错误的.现在我有一点时间考虑它,我不太确定重构是最好的主意.
以下是我重构的视图的示例.我们有一个新的帐户视图,用户在该视图中输入SSN,并且必须在创建新帐户之前重新生成SSN.该视图有一个标签,显示文本以告知用户SSN和重定密钥SSN是否不匹配,并且在两者匹配之前未启用"确定"按钮.一旦SSN和重新密钥SSN匹配,标签就会消失(是的,我知道......我讨厌但我只是开发人员)并且启用了OK按钮.因此,标签的隐藏/显示以及OK按钮的启用/禁用是从TextChanged
SSN中的事件和重新生成SSN文本框.最初我在代码隐藏中有逻辑来比较两个文本框值并适当地设置viewmodel属性来更新标签的可见属性和OK按钮的启用属性(是的,它们的属性绑定在XAML中).在找到这个新的工厂类之后,我用它将所有代码都推送到viewmodel中,并且视图就像没有代码隐藏之前那样工作.在成功重构视图之后,我现在第二次猜测重构的决定.
我担心的是,如果我们希望将来有不同的观点,并且新观点不希望以这种方式处理不匹配的SSN,该怎么办?也许新视图将允许用户输入不匹配的SSN,然后在单击"确定"按钮时显示错误消息.新视图是否必须接受为文本框中的每个按键执行的viewmodel中的代码额外开销?这对我来说听起来不对.我开始认为viewmodel应该包含支持视图需要但不支持视图所需的内容.该视图应该能够根据视图模型中的某些内容做出决策,但不依赖于VM来保持其权利 - 对吗?
作为一个新的程序员,我发现了NSlog
它的魔力,并通过我的代码使用它.它NSZombieEnabled
在调试中非常有用(同时).
我可以在模拟器上看到明确的性能打击,因为它打印出所有这些东西.我不认为我在设备上看到任何这样的打击,但我不确定.
所以留下所有东西需要花费多少钱NSLogs
?是否在设备上使用更多内存?或者编译器是否只是忽略它们,就像我为设备编译时的注释一样?
编辑:
根据我的建议,这是我实施的内容 rano.
在我的App_Prefix.pch
文件中,我补充说:
// DLog is almost a drop-in replacement for NSLog
// DLog();
// DLog(@"here");
// DLog(@"value: %d", x);
// Unfortunately this doesn't work DLog(aStringVariable); you have to do this instead DLog(@"%@", aStringVariable);
#ifdef DEBUG
# define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
# define DLog(...)
#endif
// ALog always displays output regardless of the DEBUG setting
#define ALog(fmt, ...) NSLog((@"%s [Line …
Run Code Online (Sandbox Code Playgroud) air ×1
android ×1
asp.net-mvc ×1
c# ×1
duplicates ×1
equals ×1
gethashcode ×1
google-maps ×1
installation ×1
ios ×1
iphone ×1
jquery ×1
jstree ×1
linq-to-sql ×1
memory ×1
mvvm ×1
mysql ×1
nslog ×1
sql ×1
storage ×1
text ×1
varchar ×1
wpf ×1