草庐IT

任何人

全部标签

c# - .NET 中是否有任何集合可以防止空条目?

我特别考虑的是满足集合契约的集合,但我认为这个问题可以适用于任何类型。.NET框架中是否有防止空条目的集合?我想要的具体行为是这样的:varset=newHashSet();booladded=set.Add(null);Console.WriteLine(added);//prints"False"这不是内置HashSet的行为.是否有任何集合具有这种(或类似)行为,或者我最好自己滚动?如果是后者,最好的方法是什么?我应该直接从HashSet继承吗?还是只是包裹起来?编辑:需要说明的是,这只是无聊的思考。主要是因为我想不出有什么理由让我想要允许null成一组对象。我对此没有任何特别的

c# - 检查事件是否有任何监听器?

是否可以检测事件是否有监听器?(如果没有人需要,我需要处理我的事件提供者对象) 最佳答案 假设该类在第3方库中并且无法修改:publicclassData{publiceventEventHandlerOnSave;//othermembers}在你的程序中:Datad=newData();d.OnSave+=delegate{Console.WriteLine("event");};varhandler=typeof(Data).GetField("OnSave",BindingFlags.NonPublic|BindingFla

c# - 是否可以定义实现多个接口(interface)的任何类型的列表?

考虑以下类层次结构:publicinterfaceX{voidFoo();}publicinterfaceY{voidBar();}publicclassA:X,Y{publicvoidFoo(){}publicvoidBar(){}}publicclassB:X,Y{publicvoidFoo(){}publicvoidBar(){}}有什么方法可以定义一个列表(或任何通用类型),它可以同时包含A的和B的,同时允许我将所述列表的内容视为X和Y?IE。一些东西可以让我按照这样的方式写一些东西:varlist=???list.Add(newA());list.Add(newB());li

c# - WPF Datagrid - 不显示任何滚动条

我的Datagrid在ObservableCollection上有一个绑定(bind),并在对EF获取的一些值进行分组后得到填充。我的问题是,datagrid-height超出了窗口大小。有谁知道如何解决这个问题……我差点用谷歌搜索死了……:oArsch 最佳答案 总而言之,您的控件看起来不错,这表明问题出在可视化树的某个地方。最有可能的是InventoryList,或者它的父项之一,它被放置在控件中,为它的子项提供无限量的增长空间,如StackPanel、ScrollViewer或Canvas。由于DataGrid可以增长以容纳所

c# - 如何将字节数组转换为任何类型

好的,我看到有人问如何将字节数组转换为int、string、Stream等...答案各不相同,我个人还没有找到满意的答案。下面是一些我们想要将字节数组转换成的类型。UnityEngine.Font可以接收ttf数据。UnityEngine.Testure2D可以从.png,.jpg等图片文件中获取数据...我们如何将字节数组转换为String、UnityEngine.Testure2D、UnityEngine.Font、Bitmap等...填充字节数组的数据必须来自一种文件类型,其数据可以由我们要将字节数组转换成的类型管理?这目前可能吗?如有任何帮助,我们将不胜感激。

c# - 在与请求匹配的 Controller 上未找到任何操作

请原谅我在这方面的无知。我已经阅读了很多线程,但仍然无法正确设置路由。我有一个这样的ProductsController:publicclassProductsController:ApiController{[ActionName("GetListOfStudents")]publicstaticListGetListOfStudents(stringUsername,stringPassword){Listsi=StudentFunctions.GetListOfStudents(Username,Password);returnsi;}}我有一个控制台测试程序,我在其中定义了路由

c# - 在 switch case 中,如果我们将 "default"写为任何单词或单个字母,它不会抛出错误

在switch中,如果我们写任何单词或单个字母而不是default,它不会抛出错误。例如switch(10){case1:break;hello:break;}它运行时没有抛出错误。谁能解释一下这是如何工作的? 最佳答案 它正在编译,因为hello:是一个标签,因此可以作为goto的目的地。当我编译这个时,我收到了关于未引用标签的警告(因为我没有转到)这是您可以放入LINQPad的示例-您会注意到它同时打印“1”和“hello”:switch(1){case1:"1".Dump();gotohello;break;hello:"he

c# - List.Insert 有任何性能损失吗?

给定一个列表:ListSomeList=newList();正在做:SomeList.Insert(i,val);对比SomeList.Add(val);有任何性能损失吗?如果是,如何取决于:-i-插入索引-SomeList.Count-列表的大小 最佳答案 TheListclassisthegenericequivalentoftheArrayListclass.ItimplementstheIListgenericinterfaceusinganarraywhosesizeisdynamicallyincreasedasrequ

c# - 为什么我没有看到 IDisposable 实现并发的任何实现?

当我查看IDisposable的示例实现时,我没有发现任何线程安全的。为什么IDisposable没有实现线程安全?(相反,调用者有责任确保只有一个线程调用Dispose())。 最佳答案 在使用完对象之前,您不应该丢弃它。如果有其他线程引用该对象并且它们有可能想要调用它的方法,则您不应该处置它。因此Dispose不需要是线程安全的。 关于c#-为什么我没有看到IDisposable实现并发的任何实现?,我们在StackOverflow上找到一个类似的问题:

c# - 无法让 XmlDocument.SelectNodes 检索我的任何节点?

我正在尝试解析XML文档。有问题的文档是一个AppxManifest文件。示例文档如下所示:jhjjbhhjbAssets\StoreLogo.png6.2.16.2.1Text我试着这样解析它:varxml=newXmlDocument();xml.Load(myfile);varmgr=newXmlNamespaceManager(xml.NameTable);mgr.AddNamespace("","http://schemas.microsoft.com/appx/2010/manifest");varnodes=xml.SelectNodes("Applications");