如果参数不是正确的形式,或者其他什么,我看到很多代码写入了抛出异常的地方.基本上"扔新......".
这有什么好处?通过检查参数可以避免异常(例如,如果为null,则将消息写回webpage/winform).为什么在异常昂贵时不使用这种方法?
谢谢
我有一个模型表示Content包含一些图像的项目.图像的数量是固定的,因为这些图像参考非常特定于内容.例如,Content模型将模型引用Image两次(轮廓图像和背景图像).我试图避免泛型has_many,并坚持多个has_one.当前的数据库结构如下所示:
contents
- id:integer
- integer:profile_image_id
- integer:background_image_id
images
- integer:id
- string:filename
- integer:content_id
Run Code Online (Sandbox Code Playgroud)
我在这里无法弄清楚如何正确设置关联.该Content模型可以包含两个belongs_to对a的引用Image,但这似乎在语义上不正确,因为理想情况下图像属于内容,或者换句话说,内容具有两个图像.
这是我能想到的最好的(通过打破语义):
class Content
belongs_to :profile_image, :class_name => 'Image', :foreign_key => 'profile_image_id'
belongs_to :background_image, :class_name => 'Image', :foreign_key => 'background_image_id'
end
Run Code Online (Sandbox Code Playgroud)
我离开了,有更好的方法来实现这种关联吗?
我开始修改我的应用程序,它使用所有硬编码字符串来处理错误,GUI等.我正在考虑这两种方法,但如果有更好的方法,请告诉我:
- 在ressource(.rc)文件中输入所有字符串.
- 定义文件中的所有字符串,每种语言一次.使用预处理器定义来决定编译哪些字符串.
通常首选这两种方法中的哪一种?
在Java方法中,我想使用Jersey客户端对象在RESTful Web服务上执行POST操作(也使用Jersey编写),但我不确定如何使用客户端发送将用作FormParam的值在服务器上.我能够发送查询参数就好了.
在mysql 5.x中,如果我做这样的事情会有什么区别:
CREATE TABLE aTable (
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
aNumber bigint(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8;
Run Code Online (Sandbox Code Playgroud)
有了这个:
CREATE TABLE aTable (
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
aNumber bigint(20) DEFAULT NULL
) ENGINE=InnoDB CHARACTER SET=utf8;
Run Code Online (Sandbox Code Playgroud)
注意我没有在第一个中将字符集指定为默认值.我在mysql文档中找不到任何东西.
我在Ubuntu 9.10上使用GVIM.我正在寻找配置GVIM的正确方法,以便能够通过例如ftp来编辑远程文件(HTML,PHP,CSS).
error detected while processing BufEnter Auto commands for "*":E472: Command failed.那么如何使用GVIM编辑我本地主机上的远程文件呢?
这听起来很简单但不是那么多.
我想根据T的一个属性订购一个List,它是双重类型.
在linux中,如何在2个线程之间进行同步(在linux上使用pthreads)?我想,在某些情况下,一个线程将阻塞自己,然后在以后,它将由另一个线程恢复.在Java中,有wait(),notify()函数.我在pthreads上寻找相同的东西:
我已经读过这个,但它只有mutex,有点像Java的synchronized关键字.这不是我想要的. https://computing.llnl.gov/tutorials/pthreads/#Mutexes
谢谢.
我有一个继承自的类Dictionary<string, string>.在一个实例方法中,我想迭代所有KeyValuePair<string, string>的.我尝试过以下方法:
foreach (KeyValuePair<string, string> pair in base)
Run Code Online (Sandbox Code Playgroud)
但是这失败了以下错误:
在此上下文中使用关键字"base"无效
如何KeyValuePair<string, string>在派生自的类中的实例方法中迭代Dictionary<string, string>?
编辑: 我发现我可以执行以下操作:
var enumerator = base.GetEnumerator();
while (enumerator.MoveNext())
{
KeyValuePair<string, string> pair = enumerator.Current;
}
Run Code Online (Sandbox Code Playgroud)
但是,我仍然想知道是否有办法通过foreach循环来做到这一点.
编辑: 感谢有关不继承的建议Dictionary<string, string>.我正在实施System.Collections.IEnumerable, ICollection<KeyValuePair<string, string>>, IEnumerable<KeyValuePair<string, string>>, IDictionary<string, string>.