根据FxCop的建议和我个人的倾向,我一直鼓励我正在指导的团队尽可能多地使用ReadOnlyCollections.仅限于列表的收件人无法修改其内容.在他们的理论中,这是面包和黄油.问题是List <>接口更丰富,暴露了各种有用的方法.他们为什么做出这个选择?
你只是放弃并返回可写的集合吗?您是否返回只读集合,然后将它们包装在可写的多样性中?AHHHHH.
更新:谢谢我熟悉框架设计指南,这就是为什么团队使用FxCop来强制执行它.然而,这个团队和VS 2005一起生活(我知道,我知道)并告诉他们LINQ/Extension方法可以解决他们的问题只会让他们感到难过.
他们已经了解到List.FindAll()和.FindFirst()比编写foreach循环更清晰.现在我正在推动他们使用ReadOnlyCollections,他们失去了清晰度.
也许有一个更深层次的设计问题,我没有发现.
- 抱歉,原帖应该提到了VS2005的限制.我和我共处了很长时间以至于我没有注意到.
@Entity
public class TestClass implements Serializable{
private Integer id;
private Set<String> mySet;
@Id
@GeneratedValue
public Integer getId() {
return id;
}
@OneToMany(cascade={CascadeType.ALL})
public Set<String> getMySet() {
return mySet;
}
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误.
Caused by: org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: TestClass.mySet[java.lang.String]
Run Code Online (Sandbox Code Playgroud)
或者如果我离开@OneToMany
org.hibernate.MappingException: Could not determine type for: java.util.Set, at table: test_class, for columns: [org.hibernate.mapping.Column(my_sets)]
我有一个可能是一个非常简单,狡猾的问题,但我无法在任何地方找到答案,我需要对此非常肯定.
我有来自不同供应商的各种XML文件.其中一个供应商为我提供了一个包含日文字符的XML文件.最初,我在处理XML文件时遇到了问题(我正在使用MSXML SDK).角色会出错.我发现如果将以下内容添加到XML文件中,一切都很有效.
<?xml version="1.0" encoding="UTF-16"?>
Run Code Online (Sandbox Code Playgroud)
所以我要求供应商将其添加到他们的文件中.但是他们用小写的编码添加了它:
<?xml version="1.0" encoding="utf-16"?>
Run Code Online (Sandbox Code Playgroud)
当我加载这个新文件时,使用此声明,我遇到了与此声明不存在时相同的问题.
我想弄清楚的(肯定的)是该编码属性是否区分大小写(或者是其他问题).他们把"utf-16"与"UTF-16"放在一起是否重要?
更新:在这些发布答案的人的建议下,我设置并执行了测试.一个文件的小写字母为utf-16,另一个大写字母.除此之外,文件是相同的.这没有解决问题,也不是问题.我的结论是,MSXML不区分大小写,因为规范在答案中说明.
我们有很多通过VBA和Excel生成的报告.只有一小部分报告是实际计算 - 大部分工作是sql调用和格式化/写入单元格.最长的需要几个小时,大多数需要大约20-30分钟.
VBA/Excel代码插入VB6桌面应用程序使用的dll - 这里是所有sql调用.虽然我确信这里有改进的余地,但这并不是我所关注的 - 桌面应用程序非常活泼.
两个VBA函数被大量使用:这些函数称为GetRange和SetupCell,它们几乎总是一起出现.GetRange函数是Excel.Range对象的包装器.它需要一个工作表,以及范围范围的4个值.它的主要用途是选择单元格进行编辑.似乎没有太多机会对其进行优化,但这是最好的方式吗?
它的合作伙伴是SetupCell.这需要一个Excel.Range对象,文本和十几个关于单元格的参数(字体,边框等).大多数这些参数都是可选的布尔值,但同样,这看起来非常浪费.其中一些可以在死后设置,但有些依赖于单元格中包含的值.
这些函数中包含了相当多的代码,主要是如果语句和工作不喜欢我发布它.
我想我有两个问题:是否有更好的方法,它是什么,是否有免费的分析器,我可以用来查看大部分时间是在这里还是在dll?
客户端使用经典ASP登录其基于Web的后台.
我已经编写了一个新的ASP.Net应用程序,要包含在后台,我需要利用现有的登录系统,这样当他们登录时,他们不需要再次登录新的ASP .Net app.
登录名和密码以明文形式存储在SQL Server数据库中,我可以从我的ASP.Net应用程序访问.
什么是集成这些系统的有效方法?
我目前最好的想法是:在我的ASP.Net应用程序的链接中,我链接到一个"网关"登录页面,其用户标识和散列密码+查询字符串中的常见秘密.然后我将它与数据库中用户的密码进行比较......但问题是,如果拦截了这个查询字符串,它可以用来访问asp.net网站,而不知道用户名和密码......
我很可能忽略了一些简单的事情.
我正在使用这些System.Drawing类从用户上传的照片生成缩略图和水印图像.用户还可以在上传原件后使用jCrop裁剪图像.我从其他人手中接过了这个代码,我正在寻求简化和优化它(它在高流量网站上使用).
前一个人有静态方法,它接收一个位图作为参数并返回一个,在内部分配和处理一个Graphics对象.我的理解是一个Bitmap实例在内存中包含整个图像,而Graphics基本上是一个绘制操作的队列,它是幂等的.
该过程目前的工作原理如下:
这似乎是很多内存分配; 我的问题是:重写部分代码并重用Graphics实例是一个好主意,实际上创建了一个管道?实际上,我只需要内存中的1个图像(原始上传),而其余图像可以直接写入磁盘.所有生成的图像都需要裁剪和亮度转换,以及该版本独有的单个转换,有效地创建了一个操作树.
任何想法或想法?
哦,我应该提一下,这是我第一次真正使用.NET,所以如果我说的话似乎很混乱,请耐心等待我并给我一些提示.
我正在Perl中创建一个用于回归测试的自动化测试框架.我想从测试机器上发布我的结果.我之前使用django服务器独立运行,无需安装.Perl中哪个MVC框架有自己的独立服务器?基本上,哪个Perl MVC框架最接近django的服务器功能和DRY(不要重复自己)原则?
PS我不会在python中重写我的框架
PSS我不会将Perl框架和django用作MVC
(服务器上没有python :()
我正在使用c#,Aspnet 3.5和Ajax 2.0开发Web应用程序.
问题 - 我在ie7中运行Application_1.无论客户端设置如何,我都希望以编程方式从Application_1开始在Application_1中运行Application_2.
到目前为止,我一直在使用Application_1在新窗口中打开Application_2
ScriptManager.RegisterStartupScript(this, typeof(Page), UniqueID, "window.open('theurl',' width=800, height=500'); ", true);
Run Code Online (Sandbox Code Playgroud)
我想做类似的事情来打开一个新标签.
对于在线游戏(MMORPG),我想创建具有随机强度值的角色(玩家).字符越强,这种情况就越少.
例:
实际上,我需要从1.1到9.9的浮动渐进强度值,但是对于这个例子,用整数强度来解释它更容易.
你知道如何用PHP编写代码吗?当然,我需要mt_rand()来生成随机数.但是我怎样才能实现这种金字塔结构呢?
它有什么作用?根函数,指数函数,幂函数或对数函数?
提前致谢!
它应该在图中看起来像这样: