小编The*_*uin的帖子

在XAML中定义的WPF窗口上使用泛型参数

我正在尝试在XAML中创建一个Window派生类,它可以采用泛型参数,但我似乎无法在XAML中定义泛型参数,以便它生成与我的代码隐藏文件匹配的部分类.

我想要完成的是替换所有MessageBox调用以询问用户问题,我可以在哪里给出有意义的按钮标题('保存并退出'/'退出而不保存'/'不要退出'类型的东西) .我希望能够向窗口传递一个限制为System.Enum的泛型参数,该参数定义所选选项的返回值:

<Window x:Class="EvilPenguin.MultipleChoiceQuestionBox">
    ...
Run Code Online (Sandbox Code Playgroud)

public partial class MultipleChoiceQuestionBox<T> : Window where T : System.Enum
{
    public MultipleChoiceQuestionBox()
    {
        InitializeComponent();
    }

    public T SelectedOption
    {
        get;
    }
}
Run Code Online (Sandbox Code Playgroud)
  • 有没有办法让我的XAML生成一个具有正确泛型参数的分部类?
  • 我做错了吗?出于某种原因这是一个坏主意,还是有更简单的方法?
  • 目前在XAML中这是不可能的吗?x:TypeArgument属性并不能完全符合我的要求,但它表明XAML的至少某些方面知道泛型参数

任何帮助或提示都非常感谢

c# generics wpf xaml

9
推荐指数
1
解决办法
8474
查看次数

如何在C#中获取硬盘唯一的序列号

我开发了一个系统的激活。为了生成请求代码,我使用了 HDD ID、Bios ID 和 Processor ID。我使用以下代码来获取硬盘 ID。

private string getHardDiskID()
{
     string hddID = null;
     ManagementClass mc = new ManagementClass("Win32_LogicalDisk");
     ManagementObjectCollection moc = mc.GetInstances();
     foreach (ManagementObject strt in moc)
     {
         hddID += Convert.ToString(strt["VolumeSerialNumber"]);
     }
     return hddID.Trim().ToString();
}
Run Code Online (Sandbox Code Playgroud)

但是如果我插入一个可移动磁盘,那个 ID 值就会改变。如何获得硬盘的唯一序列号...?提前致谢..

c#

6
推荐指数
1
解决办法
1万
查看次数

按特定顺序排列整数

给定一组不同的未排序整数s1,s2,..,sn如何排列整数,使得s1 <s2> s3 <s4 ...

我知道这可以通过从左到右查看数组来解决,如果不满足条件则交换这两个元素会得到正确的答案.有人可以解释为什么这个算法有效.

language-agnostic algorithm

2
推荐指数
1
解决办法
653
查看次数

检查列表<>中的重复项

我需要检查并显示List <>集合中包含的任何重复项.

//Check for duplicate items
foreach (string y in myListCollection)
{
    if (myListCollection.FindAll(x => x.Contains(y)).Count > 1)
    {
        foreach (string path in myListCollection.FindAll(x => x.Contains(y)))
        {
            listbox1.items.add(path);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但这会返回整个列表.我做错了什么?

c# list duplicates

2
推荐指数
1
解决办法
138
查看次数

如何使用无参数构造函数中的2个参数调用构造函数?

我无法绕着这个缠绕我的头.我有2个构造函数.第一个有2个参数:

public Instrument(string name, string category)
{
    this.Name = name;
    this.Category = category;
}
Run Code Online (Sandbox Code Playgroud)

然后我有一个默认(无参数)构造函数,其默认值为常量:

public Instrument()            
{
    this.Name = DefaultName;
    this.Category = DefaultCategory;
}
Run Code Online (Sandbox Code Playgroud)

我也应该从无参数构造函数调用2参数构造函数.我该怎么做呢?我也质疑为什么这甚至是必要的.如果从默认值调用2参数,您将如何将默认值传递给应用程序?所以我想我的主要问题是如何从默认构造函数中调用2参数构造函数?

c# constructor default-constructor

1
推荐指数
1
解决办法
2125
查看次数

仅通过调用单个类来使用2类

class merged(){


//i want to be able to use class sample1 and sample2 by just calling this merged class
} 

class sample1(){}
class sample2(){}
Run Code Online (Sandbox Code Playgroud)

或者这样做不理想?能否请您建议我如何更有效地实施?

oop coding-style

0
推荐指数
1
解决办法
159
查看次数

XNA是学习3D游戏编程的好地方吗?

我想在XNA中探索3D游戏开发,但我很好奇这对我来说是否最好.我没有学过C#,但我想在潜水前探索我的选择.我有很多的经验,在C语言编程,从一些基础知识或其他语言的未成年人的经验一起.这意味着C#所具有的面向对象框架可能与我习惯的方式有很大的不同.无论如何,我需要为未来的工作和大学学习它,所以这可能是一个很好的激励.我使用SDL 2.0混音器和SDL 2.0框架编写了两个游戏,这为我提供了2D游戏结构知识的良好基础.我已经了解了精灵,帧速率,事件轮询/处理,帧渲染等.我仍然非常缺乏与游戏开发及其背后的物理相关的数学.如果我决定学习XNA,这会引起我的下一个关注点,是否有助于我更快地学习这些东西?用C编写我的游戏,我总是不得不在接口上编写接口,但至少我必须理解我在写什么.有了C#,我担心它会抽象出我真正希望收集的大部分数学.你可能会问,如果我这么担心,为什么我不学习线性代数和OpenGL/DirectX/C中的任何东西?好吧,我希望避免这种情况,因为即使我能够制作出体面的游戏,我仍然非常缺乏如何进行更高级的游戏开发和代码结构化.在我的一个游戏项目工作了大约半年之后,这对我来说非常明显.

c# xna

-9
推荐指数
1
解决办法
298
查看次数