应该是不言自明的,但这是在实时XNA代码的上下文中,我想避免分配,以避免触发GC.所以我想知道与已加载的类型相关联的托管类型对象是否始终存在于运行时中,或者如果typeof()实际构造了堆上的新Type对象(可能来自运行时中的某些非托管元数据),这将是垃圾收集.随意指出甚至提出这个问题所揭示的任何无知的假设/误解=)
有没有办法让新生成的线程在其父线程上继承ThreadStatic状态(或类似的东西)的值?我想使用这个(或类似的东西)来实现"动态范围"的特殊变量,其中包含用于跟踪/记录等的操作/任务上下文信息.这是一种合理的方法,是否可以使其工作?
我已经从一个不受我控制的数据库中生成了LINQ to SQL类,这个数据库有很多Decimal(38, 5)字段.显然,.NET Decimal类型的范围小于此范围,因此LINQ to SQL代码生成器会抛出很多警告:
DBML1008:类型'AddersAndMultiplier'的列'StructGable24InchOCStuds'中的DbType'十进制(38,5)'和类型'System.Decimal'之间的映射可能导致从数据库加载时数据丢失
这些字段中的任何一个都不可能具有足够大的值以在实践中导致数据丢失,所以我想抑制这些警告.但是,显然通过VS中的对话框设置警告抑制不适用于LINQ to SQL代码生成器警告 - 还有另一种方法吗?
这个问题的副产品.你把它们放在源代码树里吗?你把它们保存在源代码管理中吗?
我想如果你的测试用例引用文件,那么文件是系统行为规范的一部分,因此它们与系统的当前版本相关联,因此它们应该被检查到源代码控制中.但是我不认为它们应该在本地签出,因为它们不需要,并且它们可能非常大.所以我倾向于使用并行树,这样如果项目的代码文件位于$ svn/Code/foo/bar/baz,则相关的测试数据文件位于$ svn/TestData/foo/bar/baz中,并且后者将直接从服务器访问使用某种常见的测试数据助手类(可能在本地缓存文件?),这可以只接受相对路径并找出在哪里找到它们.这有意义吗?
我想有一个相关的问题,即我应该在多大程度上使用外部文件进行测试.我认为它们通常适用于更高级别的"验收"测试.
c# ×2
linq-to-sql ×1
logging ×1
reflection ×1
scope ×1
test-data ×1
threadstatic ×1
typeof ×1
unit-testing ×1
xna ×1