草庐IT

分配数

全部标签

c# - Fluent NHibernate 生成和分配的 ID 列

我在Web应用程序中使用FluentNHibernate进行数据持久化。我的问题...我有一个基类,它使用GeneratedBy().Identity()映射所有具有T类型ID属性(几乎总是int或GUID)的实体在应用程序启动时,我有一个Bootstrap来检查和验证所需的种子数据是否已填充。我的问题是,一些填充的种子数据需要一个特定的ID。(对应于枚举或系统用户的ID)有什么方法可以强制NHibernate使用我指定的ID提交记录,而不是使用自动生成的ID?此后对存储库的任何其他提交都可以自动生成。 最佳答案 Id(x=>x.I

c# - 如何在运行时分配数组值

假设我有一个数组,int[]i={1,2,3,4,5};我在这里为它赋值。但在我的问题中,我只在运行时获得这些值。我怎样才能将它们分配给一个数组。例如:我从用户那里得到了数组的最大大小和它们的值,现在我该如何将它们分配给数组int[]。或者我可以使用任何其他数据类型,例如ArrayList等,我可以在最后转换为Int[]吗? 最佳答案 嗯,最简单的是使用List:Listlist=newList();list.Add(1);list.Add(2);list.Add(3);list.Add(4);list.Add(5);int[]ar

C# 巨大的性能下降分配浮点值

我正在尝试优化我的代码并在其上运行VS性能监视器。这说明简单的float赋值占用了大块的算力??我不明白这怎么可能。这是TagData的代码:publicclassTagData{publicinttf;publicfloattf_idf;}所以我真正做的是:floattag_tfidf=td.tf_idf;我很困惑。 最佳答案 我再贴一个理论:可能是第一次访问td成员的cachemiss。内存加载需要100-200个周期,在这种情况下似乎占该方法总持续时间的大约1/3。验证该理论的要点:您的数据集很大吗?它打赌是。您是否以随机内存

c# - 分配引用类型时 c# 中的奇怪 stackoverflow

在进行一些花哨的代码生成时,我遇到了一个我不理解的堆栈溢出。我的代码基本上是这样的:staticTuple[]DoWork(){//[callsomemethods]Tuple[]tmp=newTuple[100];tmp[0]=newTuple("blah1",0);tmp[1]=newTuple("blah2",1);tmp[2]=newTuple("blah3",2);//...tmp[99]=newTuple("blah99",99);returntmp;}如果您使用像这里(100)这样的小数字,则一切正常。如果数字很大,就会发生奇怪的事情。在我的例子中,我尝试发出大约10K行

c# - 内存重新排序会导致 C# 访问未分配的内存吗?

据我了解,C#是一种安全语言,不允许访问未分配的内存,除非通过unsafe关键字。但是,它的内存模型允许在线程之间存在不同步访问时重新排序。这会导致竞争危险,其中对新实例的引用似乎在实例完全初始化之前可用于竞争线程,并且是双重检查锁定的一个众所周知的问题。ChrisBrumme(来自CLR团队)在他们的MemoryModel中解释了这一点文章:Considerthestandarddouble-lockingprotocol:if(a==null){lock(obj){if(a==null)a=newA();}}Thisisacommontechniqueforavoidingaloc

c# - 如果分配了相同的值,setter 是否应该立即返回?

在实现INotifyPropertyChanged的​​类中,我经常看到这种模式:publicstringFirstName{get{return_customer.FirstName;}set{if(value==_customer.FirstName)return;_customer.FirstName=value;base.OnPropertyChanged("FirstName");}}准确的线条if(value==_customer.FirstName)return;打扰我了。我经常这样做,但我不确定它是否需要也不是很好。毕竟,如果调用者分配了完全相同的值,我不想重新分配该字

c# - 你能分配一个没有 TypeConverterAttribute 的 TypeConverter 吗?

依赖性要求迫使我在不同的地方拥有一个类及其TypeConverter组件。有没有办法在不使用TypeConverterAttribute的情况下将TypeConverter分配给类,从而导致循环程序集引用。谢谢。 最佳答案 嗯,不确定我以前见过这个,但是你可以在运行时使用TypeDescriptor添加TypeConverterAttribute,所以给定我的示例类:publicclassMyType{publicstringName;}publicclassMyTypeConverter:TypeConverter{publico

c# - 关于未分配的变量

只是好奇,我不是要解决任何问题。为什么只应分配局部变量?在下面的例子中:classProgram{staticinta;staticintb{get;set;}staticvoidMain(string[]args){intc;System.Console.WriteLine(a);System.Console.WriteLine(b);System.Console.WriteLine(c);}}为什么a和b只给我一个警告,而c给我一个错误?另外,为什么我不能只使用值类型的默认值并编写以下代码?boolMyCondition=true;intc;if(MyCondition)c=10;

c# - 不执行 linq 导致内存分配 C#

在使用VisualStudio2013性能向导分析我的代码的.NET内存分配时,我注意到某个函数分配了大量字节(因为它是在大循环中调用的)。但是查看分析报告中突出显示的函数,我根本不明白为什么它要分配任何内存。为了更好地理解发生了什么,我隔离了导致分配的代码。这类似于下面的LinqAllocationTester类。一旦我注释掉该函数中的LINQ代码,该函数从未在测试代码路径中执行过,就不再分配内存。NonLinqAllocationTester类模仿这种行为。用普通循环替换LINQ代码也可以避免内存分配。如果我在下面的测试代码上运行.NET内存分配测试,它会显示LinqAllocat

c# - 引用分配和读取是原子操作吗?

我发现了几个关于同一主题但与一般变量(值和引用类型)相关的问题来自thisquestion的已接受答案说:CLI规范的第I部分第12.6.6节指出:“当对一个位置的所有写访问都是大小一样。”引用变量(即类)是指针,等于native字长,但我有几个疑问:是否保证引用位于正确对齐的内存位置?我不明白最后一部分。这是什么意思?“...当对一个位置的所有写访问都具有相同大小时。”简而言之,在下面的代码中,是否保证obj2在循环的每次迭代中都有效?classMyClass{privateOtherClassm_Object;voidThread1(){while(true){OtherClass