小编use*_*238的帖子

XML代码注释中对泛型类型的引用

据我所知,在C#类型/方法的XML注释中,可以在标记中引用泛型类型,如下所示:

///<see cref="name.space.typename&lt;T&rt;(paramtype)">
Run Code Online (Sandbox Code Playgroud)

但我认为,还有另一种语法,不那么笨拙?什么,摆脱那些HTML实体的''?我现在找不到它.有人可以帮忙吗?

c# xml generics documentation reference

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

在Visual Studio中查找不是注释的行

如何使用Visual Studio"在文件中查找"工具窗口查找包含特定短语的所有行,但同时按非注释行过滤?

必须有正则表达式吗?或者是正则表达式帮助的链接?

c# visual-studio

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

如何在ILCube中保持形状

我想用ILNumerics绘制一些3D表面.我注意到,如果我旋转它,ILCube不会保持表面的形状,这是因为它试图使立方体适合ILPanel.但是,如果我使用ILCamera,它将保持形状,但周围没有立方体.这是一个例子,

private void ilPanel1_Load(object sender, EventArgs e)
{
    var scene = new ILScene();
    ILArray<float> A = ILSpecialData.torus(0.75f, 0.25f);
    var sf = new ILSurface(A);
    var pc = new ILPlotCube();
    pc.TwoDMode = false;
    scene.Add(pc);
    pc.Add(sf);
    sf.Colormap = Colormaps.Jet;
    var cb = new ILColorbar();
    cb.Location = new PointF(1, .1f);
    sf.Children.Add(cb);
    ilPanel1.Scene = scene;
}
Run Code Online (Sandbox Code Playgroud)

结果是

在此输入图像描述

而对于ILCamera

private void ilPanel1_Load(object sender, EventArgs e)
{
    var scene = new ILScene();
    ILArray<float> A = ILSpecialData.torus(0.75f, 0.25f);
    var sf = new ILSurface(A);
    var cam = scene.Camera;
    cam.Add(sf); …
Run Code Online (Sandbox Code Playgroud)

c# 3d plot numeric ilnumerics

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

为什么*p ++ =*p - 给出奇怪的结果?

在处理大型数组时,我正在进行不安全的指针计算,如下所示:

*c++ = *a++ - *b++; 
Run Code Online (Sandbox Code Playgroud)

它按预期工作.但对于就地操作,我也需要右侧的c指针:

[STAThread]
unsafe static void Main(string[] args) {

    double[] arr = new double[] { 2, 4, 6, 8, 10 };
    double scalar = 1;
    fixed (double* arrP = arr) {
        double* end = arrP + arr.Length;
        double* p = arrP;
        double* p2 = arrP; 
        while (p < end) {
            // gives: 3,5,7,9,2,4827634676971E+209
            *p++ = *p - scalar;

            // gives correct result: 1,3,5,7,9
            //*p = *p - scalar;
            //p++;
        }
    }
    Console.WriteLine(String.Join<double>(",", arr));
    Console.ReadKey(); 
} …
Run Code Online (Sandbox Code Playgroud)

c# pointers operator-precedence

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

何时以及如何交换.NET托管堆?

我的小压力测试在一个循环中分配随机长度数组(每个100..200MB),在64位Win7机器和32位XP(在VM中)上显示不同的行为.两个系统首先通常分配尽可能多的数组,以适应LOH.然后LOH变得越来越大,直到可用的虚拟地址空间被填满.到目前为止的预期行为.但是 - 在进一步的请求中 - 两者的行为都不同:

在Win7上抛出一个OutOfMemoryException(OOM),在XP看起来,堆增加甚至交换到磁盘 - 至少没有抛出OOM.(不知道,如果这可能与在虚拟盒中运行的XP有关.)

问题:运行时(或操作系统?)如何决定是否为托管内存分配请求,如果它太大而无法分配,生成OOM或大对象堆增加 - 最终甚至交换到磁盘?如果它被交换,OOM什么时候出现?

IMO这个问题对所有生产环境都很重要,可能涉及更大的数据集.不知何故,感觉更"安全",系统在这种情况下(通过交换)会比简单地抛出OOM而显着减速.至少,它应该以某种方式确定性,对吧?

@Edit:该应用程序是一个32位应用程序,因此在Win 7上以32位模式运行.

.net c# heap swap out-of-memory

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

从即时窗口进行多线程调试

当我进入调试器并从主线程上的VS2010的立即窗口调用函数时,该函数在同一线程上正常执行.但是,只要它们处于休眠状态,看起来在评估期间不会执行其他线程.这种行为可以被某人证实吗?似乎是,通过Windows API进行的线程间通信在该上下文中无法正常工作?

由于这可能使评估在多线程场景中挂起,因此任何变通方法也都受到高度赞赏.

编辑:问题似乎更普遍.显而易见的即时窗口 - 与逐步调试相反 - 仅执行主/当前线程.到目前为止,我无法找到任何有关限制的官方列表.所以,如果有人可以提供帮助,那也会很棒......

c# debugging multithreading immediate-window visual-studio-2010

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

order initializiation静态参数

是否有任何关于静态只读参数初始化顺序的规范?

在下面的例子中,可以确定,数组总是以6的长度创建吗?

public class Foo {
    private static readonly int MAX_STACKSIZE = 6; 
    private static readonly int[] m_stack = new int[MAX_STACKSIZE]; 
}
Run Code Online (Sandbox Code Playgroud)

或者有没有机会在MAX_STACKSIZE 之前初始化m_stack?

@Edit:将const更改为静态只读

c# specifications initialization declaration

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