草庐IT

有可能

全部标签

c# - 动态使用泛型是不可能的吗?

这个问题在这里已经有了答案:HowdoIusereflectiontocallagenericmethod?(8个答案)关闭8年前。我需要在运行时创建一个使用泛型的类的实例,比如class,之前不知道他们将拥有的T类型,我想做这样的事情:publicDictionaryGenerateLists(Listtypes){Dictionarylists=newDictionary();foreach(Typetypeintypes){lists.Add(type,newList());/*thisnewList()doesn'twork*/}returnlists;}...但是我不能。我认

c# - 访问前可能未初始化局部变量 (int)

这个问题在这里已经有了答案:Localvariable'mydate'mightnotbeinitializedbeforeaccessing(2个答案)关闭9年前。我在类中定义了以下方法:publicboolLogOff(stringsessionId){intres;//Somenonrelatedcodehere..if(res==1){returntrue;}returnfalse;}令我感到奇怪的是,我在IF子句上收到来自VisualStudio(我确实安装了ReSharper)的“局部变量在访问之前可能未初始化”错误。为什么当“res”是一个值类型并且默认为0时会出现这种情

c# - 创建一个可以使用 stdcall 在 Delphi 应用程序中导入的 C# DLL - 可能吗?

我有一个程序需要为其创建一个DLL,希望是在C#中。该程序是用Delphi编写的,我有一个接口(interface)文件可以编写代码。该接口(interface)使用stdcall调用约定。是否可以创建一个符合接口(interface)的C#DLL,可以在Delphi应用程序中使用?是否有一些示例代码演示如何将C#DLL编码为stdcall接口(interface)方法? 最佳答案 这在纯C#中是不可能的,但是thisisanarticle它展示了如何将非托管导出表添加到您的C#库,然后可以在任何其他语言中使用它。请注意,对Blit

c# - 如何获得所有可能的 3 个字母排列?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Listingallpermutationsofastring/integer例如,aaa..aaz..aba..abz..aca..acz..azz..baa..baz..bba..bbz..zzz基本上,想象一下二进制数,但不是从0到1,而是从a到z。我一直试图让这个工作无济于事,而且公式变得非常复杂。我不确定是否有更简单的方法。编辑我目前有类似的东西,但还不完全存在,我不确定是否有更好的方法:privateIEnumerableGetWordsOfLength(intlength){charletter

c# - 如果不使用返回值是否可能得到警告?

我有一个返回值的扩展方法。在这种情况下,它应该在一个字节中设置一个特定的位:publicstaticbyteSetBit(thisbyteb,intbitNumber,boolvalue){if(value){return(byte)(b|(1返回值需要重新赋值给一个变量,因为我不能结合this和ref:bytemyByte=3;myByte=myByte.SetBit(1,false);很容易不小心忘记作业。有人可能会认为该方法直接更改值。对于String.Replace,ReSharper/VisualStudio(?)警告我未使用纯方法的返回值:这在某种程度上也适用于我的方法吗?

c# - 列出 1...n 之间的 k 个整数的所有可能组合(n 选择 k)

无缘无故,我决定寻找一种算法,该算法可以产生1...n之间的k个整数的所有可能选择,其中k个整数之间的顺序无关紧要(n选择k个东西)。出于完全相同的原因,这根本不是原因,我也用C#实现了它。我的问题是:您是否发现我的算法或代码有任何错误?而且,更重要的是,您能推荐一个更好的算法吗?请多关注算法而不是代码本身。这不是我写过的最漂亮的代码,但如果您看到错误,一定要告诉我。编辑:Alogirthm解释-我们持有k个指数。这会创建k个嵌套的for循环,其中循环i的索引是indices[i]。它模拟k个for循环,其中indices[i+1]属于嵌套在indices[i]循环中的循环。indic

c# - 是否有可能以 mvvm 模式在 wpf datagrid 上获取动态列?

我正在用wpf开发一个产品(使用MVVM模式)。根据用户的自定义(用户将选择列),我必须将一组数据显示到数据网格中。目前,我正在将具有一组属性的ObservableCollection绑定(bind)到数据网格的ItemSource。这将我限制为固定的列大小。注意:列出n个列名供用户选择。如果它在后面的代码中完成,则通过“datagrid.columns.add()”很容易。在这种情况下,任何人都可以帮助我吗。我的xaml:我的命令类:publicstaticclassDataGridExtension{publicstaticObservableCollectionGetColumn

c# - 开箱即用地更新 EF 中的子集合真的不可能吗(又名非 hacky 方式)?

假设您的实体中有这些类。publicclassParent{publicintParentID{get;set;}publicvirtualICollectionChildren{get;set;}}publicclassChild{publicintChildID{get;set;}publicintParentID{get;set;}publicvirtualParentParent{get;set;}}并且您有一个用户界面来更新Parent及其Children,这意味着如果用户添加新的Child那么您必须插入,如果用户编辑了一个现有的Child那么你需要更新,如果用户删除了一个C

c# - 如何为其派生类型的每种可能组合实现基类的方法

我有以下由多个其他类实现的Shape接口(interface),例如Rectangle、Circle、Triangle...interfaceIShape{boolIsColliding(IShapeother);}IsColliding方法应该检查一个Shape是否与另一个Shape发生碰撞,而不管它们的具体类型。然而,每一对形状(矩形/矩形、矩形/圆形、圆形/三角形等)都有自己的碰撞检查实现。我正在努力为这个问题找到一个好的设计解决方案。天真的方法是切换“其他”形状的类型以调用正确的实现:classRectangle:IShape{boolIsColliding(IShapeoth

c# - 是否有可能在代码中丢失过度继承?

我目前正在开发一个由其他人完成的asp.net站点,它的功能复杂得可笑……嗯,我是这么认为的!几乎每个类都继承自另一个类,然后是另一个类,然后是另一个类,依此类推......你必须平均达到8/10级才能获得基类,有时甚至更多!这些类内部还有其他类,它们遵循与Uber继承相同的模式。这让我多次迷失在代码中,结果天知道在visualstudio上打开了多少个标签页。这是好的/正常的做法还是不好的做法?我觉得这是一种不好的做法,因为过度使用继承导致代码变得不可扩展,如此简单的事情变得过于复杂......但我可能是错的:)谢谢! 最佳答案