小编WHe*_*ann的帖子

在继承的类中强制继承成员的类型安全

我正在努力坚持良好的OO设计原则和设计模式等.因此,在开发我的C#应用​​程序时,我经常可以找到多种解决方案来解决设计和架构问题,我总是希望找到并实现更"规范"的解决方案,以期构建高度可维护和灵活的软件,并成为更好的OO程序员.

所以假设我有这两个抽象类:CharacterWeapon.

abstract class Weapon
{
    public string Name { get; set; }
}

abstract class Character
{
    public Weapon weapon { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

派生类可能是SwordStaffWeapon,并WarriorMageCharacter等(这是所有假设,而不是与我的实际的软件!).

每个Character都有一个Weapon,但是对于每一个实现,Character我都知道Weapon它的具体实现.例如,我知道(我想强制执行!)在运行时,每个实例Warrior都有一个Weapon类型Sword.我当然可以这样做:

class Sword : Weapon
{
    public void Draw() { }
}

class Warrior : Character
{
    public Warrior()
    {
        weapon = new …
Run Code Online (Sandbox Code Playgroud)

c# polymorphism inheritance design-patterns

6
推荐指数
2
解决办法
618
查看次数

.NET中的数字不一致

我正在用C#构建类似CAD的应用程序.我正在使用SlimDX图形引擎,对于数字运算部分,我构建了最终依赖于System.Math类的自定义库.

现在,问题是SlimDX库使用由float数据类型组成的结构,而Math类包含几个只接受和返回双重对象的方法,例如:Math.Ceiling和Math.Sin.所以我发现自己不断地从浮动到双重来回投射我的数据.

这似乎不对.我不是那么担心演员阵容可能会对演奏造成的影响(也许我应该这么做?),但由于它们可能会出现数值不稳定性,这更加令人恐惧.

所以我只是想知道你通常如何管理这些情况,因为我猜这绝不是一个不常见的场景.

c# type-conversion slimdx numerical-stability

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