草庐IT

C++动态分配类数组

全部标签

c# - 如何在 C# 中检查运行时类型的可分配性?

Type类有一个方法IsAssignableFrom()几乎可以工作。不幸的是,它仅在两种类型相同或第一种类型位于第二种类型的层次结构中时才返回true。它说decimal不能从int分配,但我想要一个方法来指示decimal可以从分配int,但是int并不总是可以从decimal分配。编译器知道这一点,但我需要在运行时弄清楚。这是对扩展方法的测试。[Test]publicvoidDecimalsShouldReallyBeAssignableFromInts(){Assert.IsTrue(typeof(decimal).IsReallyAssignableFrom(typeof(i

c# - 从类型中动态获取类属性值

我正在尝试编写一种方法来查找具有特定自定义属性的程序集中的所有类型。我还需要能够提供一个字符串值来匹配。需要注意的是,我希望能够在任何类上运行它并返回任何值。例如:我想执行这样的调用TypetTest=TypeFinder.GetTypesWithAttributeValue(Assembly.Load("MyAssembly"),typeof(DiagnosticTestAttribute),"TestName","EmailTest");目前我的方法是这样的:publicstaticTypeGetTypesWithAttributeValue(AssemblyaAssembly,T

c# - 可以将动态对象转换为 ExpandoObject (c#)

我从驱动程序api(在dll中)获取类型为“密封类”的动态对象。我想用一些额外的属性来装饰这个对象。我想做一些事情:publicvoidexpandIT(dynamicsealedObject){ExpandoObjectexpand=newExpandoObject(sealedObject);expand.time=DateTime.Now();etc....}更新我喜欢JCL的解决方案。但是对于我想做的事情,创建一个ExpandoObject然后将Dynamic密封类对象作为子属性嵌入,然后将我的属性添加到父ExpandoObject更容易。感谢JCL,对于如何执行此操作,我的大

c# - 使用动态文件名读取存储在资源文件 (resx) 中的字符串

在我的C#应用程序中,我需要创建一个为每个客户定制的字符串的.resx文件。我想做的是避免每次我必须向我的客户提供我的应用程序时重新编译整个项目,所以我需要动态访问这个字符串。那么,如果我只在执行时知道文件名,我该如何访问(在应用程序执行期间)resx文件?从现在开始我写了类似的东西:Properties.Resources.MyString1其中Resource是我的Resource.resx文件。但我需要这样的东西:GetStringFromDynamicResourceFile("MyFile.resx","MyString1");这可能吗?谢谢标记

c# - 为什么未分配的局部变量不自动初始化?

似乎没有办法在您的代码中包含未分配的局部变量或检查它们,因为编译器会吐出Useofunassignedlocalvariable错误。为什么编译器在编译时不对这些变量使用default(T)?即使对值类型做起来更难,在这种情况下引用类型也可以很容易地初始化为null,对吧?这是一些测试代码:publicvoidTest(){intx;strings;if(x==5)Console.WriteLine(5);if(s!=null)Console.WriteLine("s");}返回:Useofunassignedlocalvariable'x'Useofunassignedlocalva

c# - 将字符串转换为动态对象

有没有直接的转换方式:stringstr="a=1,b=2,c=3";进入:dynamicd=new{a=1,b=2,c=3};我想我可以编写一个函数来拆分字符串并循环结果以创建动态对象。我只是想知道是否有更优雅的方法来做到这一点。 最佳答案 我认为如果您将“=”转换为“:”并用大括号括起所有内容,您将获得一个有效的JSON字符串。然后您可以使用JSON.NET将其反序列化为动态对象:dynamicd=JsonConvert.DeserializeObject(jsonString);你会得到你想要的。

c# - C# List<char[]> 是否分配在连续内存中?

如果我声明一个char数组列表,它们是分配在连续的内存中,还是.NET创建一个链接列表?如果它不是连续的,有没有办法声明一个连续的char数组列表?char数组的大小是预先知道的并且是固定的(它们的大小都相同)。 最佳答案 是的,但不是您想要的方式。List保证它的元素是连续存储的。数组是引用类型,因此引用连续存储为List保证。但是,数组本身是单独分配的,它们的存储位置与列表无关。它只关心它的元素,即引用。如果您需要,那么您应该只使用一个大数组并维护边界数据。编辑:根据您的评论:Theinnerarraysarealways9ch

c# - 获取在 C# 中转换为动态的数组的计数

考虑这段代码:staticvoidMain(string[]args){varints=newList{10,11,22};Something(ints);//Output:Countis:3Something(newint[10]);//'System.Array'doesnotcontain//adefinitionfor'Count'Console.ReadLine();}staticvoidSomething(ICollectioncollection){dynamicdynamic=collection;Console.WriteLine("Countis:{0}",dyna

c# - 使用 csvHelper 动态创建列

我有一个工作人员,其中包含从服务器获取的各种字段。我正在使用CSVHelper包将此类转换为Excel工作表。worker有这样的领域:classWorker{stringname;stringphone;stringage;DictionarycustomerField;}我可以映射姓名、电话、号码之类的classWorkerMap:CsvClassMap{publicWorkerMap(){Map(m=>m.name);Map(m=>m.phone);Map(m=>m.age);}}我通过以下方式生成map:csv.Configuration.RegisterClassMap();

c# - 动态添加字段到 Razor 表单

我有一个Razor表单,其中包含我想动态添加项目的项目列表/表格。您可以从下拉列表中选择项目,单击“添加”,下拉列表中的项目将添加到列表中。然后我希望在提交表单时通过POST发送所有这些信息,并且我的Controller的HttpPost方法可以处理输入。有没有办法动态添加字段并且仍然能够接受它们作为HttpPost函数中的参数? 最佳答案 第一个答案是正确的,因为您可以遍历表单集合以获取表单元素中动态插入的字段的值。我只是想补充一点,您可以利用一些简洁的绑定(bind)。下面的代码接受针对该操作发布的动态文本框列表。此示例中的每个