小编Zac*_*rns的帖子

如何查找文件的扩展名?

在我的网络应用程序(asp.net,c#)中我在一个页面上传视频文件,但我只想上传flv视频.我如何限制上传其他扩展视频的时间?

c# asp.net

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

像 Denormals-Are-Zero (DAZ) 这样的非规范标志会影响比较的相等性吗?

如果我有 2 个具有不同位模式的非正规浮点数并比较它们是否相等,结果是否会受到非正规数-零标志、刷新到零标志或常用处理器上的其他标志的影响?

还是这些标志只影响计算而不影响相等性检查?

floating-point x86 sse x87 fast-math

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

包含原始值类型的结构是否是C#中的零成本抽象?

有时我想在原始双打周围增加更多类型的安全性.出现的一个想法是添加类型的单位信息.例如,

struct AngleRadians {
  public readonly double Value;
  /* Constructor, casting operator to AngleDegrees, etc omitted for brevity... */
}
Run Code Online (Sandbox Code Playgroud)

在如上所述的情况下,只有一个字段,JIT是否能够在所有情况下优化这种抽象?与使用未包装的双倍的类似代码相比,什么情况(如果有的话)将导致额外生成的机器指令?

任何提及过早优化的内容都将被低估.我很想知道真相.

编辑:为了缩小问题的范围,这里有几个特别感兴趣的场景......

// 1. Is the value-copy constructor zero cost?
// Is...
var angleRadians = new AngleRadians(myDouble);
// The same as...
var myDouble2 = myDouble;

// 2. Is field access zero cost?
// Is...
var myDouble2 = angleRadians.Value;
// The same as...
var myDouble2 = myDouble;

// 3. Is function passing zero cost?
// Is calling...
static void DoNaught(AngleRadians …
Run Code Online (Sandbox Code Playgroud)

c# performance cil ryujit

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

为什么对const进行静态引用会返回对临时变量的引用?

在Rust中,我有以下代码:

pub trait Test: Sized {
    const CONST: Self;
    fn static_ref() -> &'static Self {
        &Self::CONST
    }
}
Run Code Online (Sandbox Code Playgroud)

我的期望是,既然const'static,那么我应该能够引用也是'static。但是,编译器给出以下错误:

pub trait Test: Sized {
    const CONST: Self;
    fn static_ref() -> &'static Self {
        &Self::CONST
    }
}
Run Code Online (Sandbox Code Playgroud)

这里如何引入临时变量?

此外,似乎在某些情况下引用常量确实有效。这是一个简短的具体示例,其中Test的实现略有不同

pub trait Test: Sized {
    fn static_ref() -> &'static Self;
}

struct X;

impl Test for X {
    fn static_ref() -> &'static Self {
        &X
    }
}
Run Code Online (Sandbox Code Playgroud)

lifetime rust borrow-checker

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

标签 统计

c# ×2

asp.net ×1

borrow-checker ×1

cil ×1

fast-math ×1

floating-point ×1

lifetime ×1

performance ×1

rust ×1

ryujit ×1

sse ×1

x86 ×1

x87 ×1