我只是真正开始IOS开发,但通过C#开发ASP.net几年.说实话我以前从来没有真正需要理解委托/事件等,我知道我在编写web.forms时使用它们但是很多功能都是由框架在后面处理的,在幕后.
所以现在我正在开发IOS,我不得不试着去理解它们是如何运作的(我在这里假设代理/事件的理论在语言中是相同的,也许我错了).无论如何,IOS中的以下代码行:
if ([self.delegate respondsToSelector:@selector(startImporting:)])
{
[self.delegate startImporting:self];
}
Run Code Online (Sandbox Code Playgroud)
我是否正确地认为,在伪代码中,它意味着以下内容:
如果调用此方法的方法/类中有一个名为'startImporting'的方法,则在调用类中调用方法'startImporting'.
希望很清楚.如果是这种情况,那么它基本上与在C#中使用静态方法相同,你可以调用类似的东西:
myImportClass.startImporting();
Run Code Online (Sandbox Code Playgroud)
大概不是,或者就是这样做.那么,我是否错过了代表们的全部观点,他们的利益等等?我已经读过他们一遍又一遍的内容,虽然它有意义,但它从不点击,我从来没有(无论如何都是网页形式)真正看到了使用它们的好处.
这变得越来越重要,因为我正在使用.net中的lambda表达式,并且它们与C#中的委托密切相关,所以当我可以开始使用它们时,我更愿意知道委托实际上为什么和有什么好处.
使用asp.net 4虽然C#.
在我的数据访问层中,我有保存和更新记录的方法.保存很容易,但更新很繁琐.
我之前使用的SubSonic很棒,因为它有活动记录,并且知道如果我加载了一条记录,更改了一些条目然后又保存了它,它认为它是一个更新,并没有尝试在DB中保存一个新条目.
我不知道如何在LINQ中做同样的事情.结果我的工作流程如下:
如果我只保存'记录A',我最终会在数据库中输入一个新条目.
显然,通过记录A并执行以下操作会更好:
RecordA.Update();
Run Code Online (Sandbox Code Playgroud)
我假设我在这里缺少一些东西,但我无法在线找到一个简单的答案.
来自Visual Studio的背景我不知道IDE真正有多好,直到我不得不使用Xcode.它刚刚抛出的一个比较紧迫的怪异是以下几点.
我正在将项目升级到视网膜显示器,因此必须添加一堆新的@ X2文件.这很好,我有文件,我进入Xcode,选择我想要添加它们的项目组,选择它们并单击"添加".
"发生了多个错误"Xcode有助于脱口而出,然后返回之前正在做的任何事情.没有分解这些错误可能是什么,或实际发生了什么或为什么.
所以我做了一些看,有些文件实际上在目录中,但是Xcode忽略了它们,我无法想出添加它们的方法(它说它们已经存在了!)但是它们不会出现在xcode中项目.
我可以刷新'xcode,使其在目录中查看并显示它们吗?
==============================
PS.虽然我在这里并且可以咆哮一下,现在使用Xcode的VS背景的任何人,我认为以下几点非常烦人,我错了:
1)调试器 - 令人沮丧地缓慢.
2)文件浏览器 - 无法轻易按名称排序
3)当您在编辑器窗口中从一个文件移动到另一个文件时,文件浏览器 - 右侧列出文件名的列不会更改文件突出显示.
4)将文件添加到项目中 - 见上文!
其中一些可能源于缺乏IDE的经验,但他们仍然感到厌烦.
我正在尝试将 Nop Commerce 2.65 中的邮政编码字段设置为仅包含字母数字的字段。我使用以下行编辑了 Nop.Web 管理文件夹中的文件 AddressValidator.cs:
RuleFor(x => x.ZipPostalCode)
.Matches(@"^[0-9a-zA-Z ]+$")
.WithMessage("Numbers and letters only please.");
Run Code Online (Sandbox Code Playgroud)
我已经编译并上传了 NopAdmin.dll 但它什么也没做,就像验证不存在一样。
是代码错误还是我上传了错误的文件?
我正在尝试在VS代码中配置TS Lint的最大行长(除其他设置外),但是无论我进行什么更改都不会“占用”。
因此,第一个奇怪的是,VS代码的最大行长的TS Lint错误表示我已经超过了140个字符的限制,但是在各种配置文件中,我发现它仅提及120个字符作为默认字符。
我已将其更改为200个字符,已禁用/启用了扩展名,但仍然收到140个字符的警告。有谁知道在哪里以及如何配置此设置?联机文档足够清晰,但我似乎没有tslint.json文件,在node_modules => tslint => lib => rules文件夹中,设置为120,对其进行更改没有任何区别。