如何在c#项目中添加dll

我想在我的项目中添加一个[Science.dll] ,应该是明星前进。 但我遇到了问题。 有人可以告诉我为什么吗? 我刚从互联网上复制的我的C#项目。 using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using System.ComponentModel; using System.Data; using Science.Mathematics.VectorCalculus; namespace using_science_dll { static class Program { /// /// The main entry point for the application. /// `enter code here` } } C:\ Csharptutorial \ using_science_dll \ using_science_dll \ Program.cs(7,7):错误CS0246:找不到类型或命名空间名称“Science”(您是否缺少using指令或程序集引用?) 是因为我使用的是VS 2008吗? Science.dll将在以下框架中运行.Net 4.0和Visual C#2010 Express

如何将generics类型参数限制为System.Enum

可能重复: 任何人都知道缺乏枚举通用约束的好方法吗? 创建将T限制为枚举的通用方法 是否可以将Enum的generics类型参数[我不知道这是否是正确的名称]? 例如,我该如何做这样的事情? //VB.NET Function GetValues(Of T As System.Enum)(ByVal value As T) As IEnumerable(Of T) Return [Enum].GetValues(value.GetType) End Function //C# public IEnumerable GetValues(T value) where T : System.Enum { return Enum.GetValues(value.GetType()); } 更新 我最终为此目的使用了Jon Skeet的无约束旋律 。 感谢大家的贡献。

C#中是否有可用于属性的委托?

鉴于以下课程: class TestClass { public void SetValue(int value) { Value = value; } public int Value { get; set; } } 我可以 TestClass tc = new TestClass(); Action setAction = tc.SetValue; setAction.Invoke(12); 这一切都很好。 是否可以使用属性而不是方法来做同样的事情? 最好是内置于.net的内容。

避免在C#中重复的事件订阅

您如何建议避免重复事件订阅的最佳方法? 如果这行代码在两个地方执行,则事件将运行两次。 我试图避免第三方事件订阅两次。 theOBject.TheEvent += RunMyCode; 在我的委托制定者中,我可以有效地运行这个…… theOBject.TheEvent -= RunMyCode; theOBject.TheEvent += RunMyCode; 但这是最好的方法吗?

asp.net中的文件路径(URL)上的./,.. /,.. / .. /,〜/之间有所不同

我有一个脚本文件。 看路径是~/Script 。 但如果我输入../../而不是~/ ,此过程也是一样的。 我的网站url如下: https://sample.com/Scripts/angular.js : https://sample.com/Scripts/angular.js 如果我在Scripts之前输入了../../ ,那么它会自动更改以前的URL (https://sample.com/Scripts/angular.js) 。 什么是url流程? 它怎么能自动改变? 请告诉我们. ./, ../ , ../../ , ~/ ,/Scripts ,Scripts之间的区别?

如何将DataTable.Select()结果传递给新的DataTable?

我有一个名为dt2的DataTable和数据。 我调用它的Select方法来获取一些特定的行。 DataRow[] foundRows; expression = “parent_id=1”; foundRows = dt2.Select(expression); 如何将Select -method结果传递给新的DataTable – 比如FilteredData ?

NHibernate SchemaUpdate

从个人经验以及我读过的所有内容来看,NHibernate的SchemaUpdate不支持删除列和表。 我想使用SchemaUpdate生成迁移DDL,但没有删除会使其变得更加困难。 你怎么解决这个问题? 在进行影响数据库的更改时,还有其他工具可以帮助您将重点放在域层上吗? 是否有任何工具像SchemaUpdate一样工作(我可以将工具指向我的实体和数据库的当前版本,并让它生成更改脚本)?

生成随机加权值

编辑:我已经重写了这个问题,希望目标更加清晰。 这是这个问题的一个扩展问题,我非常喜欢这个答案提供的function。 在上面的答案中,人们能够设定击中极端的概率,较高的数字产生较低数字的概率,反之亦然。 问题是我必须设定3组的概率。 这些组是最低值(LV),最高值(HV)和中间值(MV)。 但是,为了简化请求,我们可以考虑EVP=HVP=LVP 。 给定任何范围,HV / LV应基于指定的EVP出现,并且当您从每个极端的范围内进展/下降时,该范围中下一个值的概率将根据EVP之间的距离增加或减少。和MVP。 使用1-6的示例范围,1和6的加权为5%(EVP),概率差为1/6为5%,2/4为15%,3/4为30%(MVP) ),总计100%。 反过来也应该是可能的,交换EVP和MVP应产生下图的反转。 这是一张我希望能传达给定例子预期结果的图像。 中等重量: 额外奖励:如果我能够单独设置HVP和LVP产生类似于下图的结果,那将是最优秀的( 注意:图表不符合上述规范 )。 中等加权(奖金): 谢谢!

“公共”嵌套类与否

假设我有一个“应用程序”类。 为了初始化,它需要在构造函数中进行某些设置。 我们还假设设置的数量太多,以至于将它们放在自己的类中是很有吸引力的。 比较此方案的以下两种实现方式。 实施1: class Application { Application(ApplicationSettings settings) { //Do initialisation here } } class ApplicationSettings { //Settings related methods and properties here } 实施2: class Application { Application(Application.Settings settings) { //Do initialisation here } class Settings { //Settings related methods and properties here } } 对我来说,第二种方法更为可取。 它更具可读性,因为它强调了两个类之间的关系。 当我编写代码以在任何地方实例化Application类时,第二种方法看起来更漂亮。 现在想象一下,Settings类本身又有一些类似的“相关”类,而这个类反过来也是如此。 只有三个这样的级别,类命名在’非嵌套’的情况下失控。 然而,如果你筑巢,事物仍然保持优雅。 尽管如此,我还是读过人们在StackOverflow上说嵌套类只有在外部世界不可见的情况下才是合理的。 […]

如何从.NET中的内存映射文件中快速读取字节?

在某些情况下, MemoryMappedViewAccessor类不会为了有效读取字节而剪切它; 我们得到的最好的是通用的ReadArray ,它是所有结构的路由,当你需要字节时涉及几个不必要的步骤。 可以使用MemoryMappedViewStream ,但由于它基于Stream您需要首先寻找正确的位置,然后读取操作本身有许多不必要的步骤。 是否有快速,高性能的方法从.NET中的内存映射文件读取字节数组,因为它应该只是地址空间的特定区域来读取?