在方法中发生异常时,跟踪/记录所有局部变量值的任何通用方法?(在C#3中)
我有兴趣找到关于编写光线跟踪器的书籍的建议,可以在网上看到的简单而清晰的光线跟踪实现,以及关于介绍光线跟踪的在线资源.
理想情况下,该方法将是渐进式和教学式的,并从基础开始解释编程技术和基础数学.
我正在阅读Steve McConell的Code Complete,我正在考虑他在松散耦合的一节中给出的一个例子.它是关于计算员工假期数量的方法的界面,该方法是根据员工的入职日期及其销售额计算得出的.作者建议将输入日期和销售作为方法的参数而不是雇员的实例:
int holidays(Date entryDate, Number sales)
Run Code Online (Sandbox Code Playgroud)
代替
int holidays(Employee emp)
Run Code Online (Sandbox Code Playgroud)
这个论点是,这解耦了方法的客户端,因为它不需要知道关于Employee类的任何信息.
我想到了两件事:
提供计算所需的所有参数会破坏封装.它显示了该方法的内部结构如何计算结果.
更改更难,例如当有人决定员工的年龄也应该包含在计算中时.人们必须改变签名.
你怎么看?
是否可以在具有不同用户帐户的Windows上创建新进程?我知道有一个上下文菜单"Run as"但我想用Java做.我有用户名和密码.
我正在寻找一个参考数据库,可用于测试联系人数据库中可能的名称拼写错误.这是一个批处理过程,因此性能不是一个真正的问题.理想情况下,我想要一个全面的数据库,但即使像"前5000"这样的东西也会有很长的路要走.
谢谢!
哪个是最好的,用户最友好的MySQL性能工具?我想帮助找出我设置的瓶颈.是SQL语句,设置变量还是其他问题?
我对在Python中实现自动完成感兴趣.例如,当用户键入字符串时,我想在磁盘上显示名称以该字符串开头的文件子集.
什么是一种有效的算法来查找匹配大型语料库中某些条件的字符串(比如数十万个字符串)?就像是:
matches = [s for s in allfiles if s.startswith(input)]
Run Code Online (Sandbox Code Playgroud)
我希望条件灵活; 例如.只要输入中的所有字母都以相同的顺序出现在s中,而不是严格的startwith,它就是匹配.什么比我在这里展示的蛮力方法更好?
它与BI和来自不同数据源的数据合并相关联,并使该过程更加顺畅.
是否存在从没有Guids的数据库到没有信息丢失的Guids版本的最佳迁移策略?
我有一些泛型类型,如下所示:
public struct Tuple<T1, T2> { ... }
public struct Tuple<T1, T2, T3> { ... }
etc.
Run Code Online (Sandbox Code Playgroud)
理论上这些应该能够将自己与相同类型的其他值进行比较,以便我可以编写以下类型的代码:
List<Tuple<Type, String>> l = new List<Tuple<Type, String>>();
l.Add(new Tuple<Type, String>(typeof(ISomeInterface), "123"));
if (l.Contains(new Tuple<Type, String>(typeof(ISomeOtherInterface), "123"))
...
Run Code Online (Sandbox Code Playgroud)
不幸的是,我的代码中存在一个错误,然后问题就变成了如何正确地执行此操作.
该bug与我的CompareTo>的实现有关,基本上如下所示:
Int32 result = HelperMethods.CompareTwoFields<T1>(_Value1, other._Value1);
if (result != 0)
return result;
Int32 result = HelperMethods.CompareTwoFields<T2>(_Value2, other._Value2);
if (result != 0)
return result;
return 0;
Run Code Online (Sandbox Code Playgroud)
HelperMethods.CompareTwoFields如下所示:
internal static Int32 CompareTwoFields<T>(T field1, T field2)
{
Int32 result = 0;
if (ReferenceEquals(field1, null) != ReferenceEquals(field2, null)) …Run Code Online (Sandbox Code Playgroud) c# ×2
.net ×1
account ×1
c++ ×1
compareto ×1
comparison ×1
coupling ×1
database ×1
exception ×1
graphics ×1
guid ×1
icomparable ×1
java ×1
logging ×1
mysql ×1
performance ×1
process ×1
python ×1
raytracing ×1
replication ×1
search ×1
sql-server ×1
testing ×1
windows ×1