小编zfe*_*ran的帖子

是否可以覆盖非虚方法?

有没有办法覆盖非虚方法?或者给出类似结果的东西(除了创建一个新的方法来调用所需的方法)?

我想从Microsoft.Xna.Framework.Graphics.GraphicsDevice单元测试中覆盖一个方法.

c# overriding overloading

83
推荐指数
4
解决办法
7万
查看次数

为什么我不能使用System.ValueType作为泛型约束?

  • 为什么我不能使用约束 where T : System.ValueType
  • 为什么Microsoft会阻止此类型成为约束?

例:

为什么我不能做以下事情?

// Defined in a .Net class
public void bar<T>(T a) where T : ValueType {...}

// Defined in my class
public void foo<T>(T a) where T : ValueType 
{ bar<T>(a); }
Run Code Online (Sandbox Code Playgroud)

使用struct而不是ValueType有什么区别?

// Defined in my class
public void foo<T>(T a) where T : struct 
{ bar<T>(a); }
Run Code Online (Sandbox Code Playgroud)

c# generics

48
推荐指数
3
解决办法
2万
查看次数

是否可以在不暂停执行的情况下在Visual Studio 2010中编辑和继续?

我最近看了一下Notch的Ludum Dare直播.在他的游戏中,他广泛使用Eclipse的hotswap功能.(这是我所指的http://www.twitch.tv/notch/b/302823358?t=86m30s的视频)

我想用C#和XNA做同样的事情.幸运的是,Visual Studio具有"编辑并继续"功能.但是,我想在运行时编辑我的渲染代码而不是暂停它.

我可以设置Visual Studio来做同样的事情吗?我注意到有一个复选框Break all processes when one process breaks.是否可以在另一个线程中设置我的渲染循环,以便在我进行更改时游戏保持渲染?

xna visual-studio-2010 hotswap edit-and-continue

14
推荐指数
2
解决办法
3088
查看次数

如何正确处理Three.js场景?(R55)

似乎Three.js没有很好的方法来处理THREE.Scene该场景中的一个和所有对象.

目前我正在做以下事情:

  $.each(scene.__objects, function(idx, obj) {                               
    scene.remove(obj);                                                                                     
    if (obj.geometry) {                                                                                    
      obj.geometry.dispose();                                                                              
    }                                                                                                      
    if (obj.material) {                                                                                    
      if (obj.material instanceof THREE.MeshFaceMaterial) {                 
        $.each(obj.material.materials, function(idx, obj) {                 
          obj.dispose();                                                                                   
        });                                                                                                
      } else {                                                                                             
        obj.material.dispose();                                                                            
      }                                                                                                    
    }                                                                                                      
    if (obj.dispose) {                                                                                     
      obj.dispose();                                                                                       
    }                                                                                                      
  });             
Run Code Online (Sandbox Code Playgroud)

查看Chrome Heap剖析器,仍有许多对象无法清理(纹理,着色材质,矢量等).

javascript memory-leaks three.js

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

是否可以将.NET类转换为COM库类?

MathInputControl通过micautLibCOM库在C#中使用该类.

例:

    MathInputControl mic = new MathInputControlClass();
    mic.EnableExtendedButtons(true);
    mic.Show();
Run Code Online (Sandbox Code Playgroud)

我正在使用Microsoft.Ink,我希望能够Ink通过该MathInputControl.LoadInk(IInkDisp ink);方法将对象发送到MathInputControl对象.但是,IInkDisp接口是一个非托管接口,并且没有托管的Microsoft.Ink类实现它.

如何向受管理的Ink对象发送它?

c# com tablet-pc windows-7 microsoft-ink

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

以下C#代码有什么作用?

我在C#XNA图形api中遇到了以下类,我不确定它是做什么的,或者它需要如此模糊.(T被约束为父类中的结构)

    static class Ident
    {
        static object sync = new object();
        static volatile int index = 0;
        static int Index
        {
            get
            {
                lock (sync)
                    return index++;
            }
        }
        class Type<T>
        {
            public static int id = Index;
        }
        public static int TypeIndex<T>()
        {
            return Type<T>.id;
        }
    }
Run Code Online (Sandbox Code Playgroud)

API仅在调用此静态类时生成: int index = Ident.TypeIndex<T>();

c# generics

4
推荐指数
2
解决办法
211
查看次数