小编cod*_*zen的帖子

在C#中,为什么String是一个行为类似值的引用类型?

String是一种引用类型,即使它具有值类型的大多数特性,例如是不可变的并且具有==重载以比较文本而不是确保它们引用相同的对象.

为什么字符串不是一个值类型呢?

c# string clr value-type reference-type

348
推荐指数
8
解决办法
16万
查看次数

在foreach循环内部或外部声明变量:哪个更快/更好?

哪一个更快/更好?

这个:

List<User> list = new List<User>();
User u;

foreach (string s in l)
{
    u = new User();
    u.Name = s;
    list.Add(u);
}
Run Code Online (Sandbox Code Playgroud)

或者这一个:

List<User> list = new List<User>();

foreach (string s in l)
{
    User u = new User();
    u.Name = s;
    list.Add(u);
}
Run Code Online (Sandbox Code Playgroud)

我的新手开发技巧告诉我第一个更好,但是我的一个朋友告诉我错误,但不能给我一个很好的理由为什么第二个更好.

性能有什么不同吗?

c# foreach

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

使用ASP.Net MVC上传文件 - 获取名称但没有文件流,我做错了什么?

我认为这个表格有:

<!-- Bug (extra 'i') right here-----------v  -->
<!-- was: <form method="post" enctype="mulitipart/form-data" action="/Task/SaveFile"> -->
<form method="post" enctype="multipart/form-data" action="/Task/SaveFile">
<input type="file" id="FileBlob" name="FileBlob"/>
<input type="submit"  value="Save"/>
<input type="button" value="Cancel" onclick="window.location.href='/'" />
</form>
Run Code Online (Sandbox Code Playgroud)

这个代码在我的控制器中:

public ActionResult SaveFile( FormCollection forms )
{
   bool errors = false;
   //this field is never empty, it contains the selected filename
   if ( string.IsNullOrEmpty( forms["FileBlob"] ) )
   {
       errors = true;
       ModelState.AddModelError( "FileBlob", "Please upload a file" );
   }
   else
   {
      string sFileName = forms["FileBlob"];
      var file …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc upload

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

x87中的扩展(80位)双浮点,而不是SSE2 - 我们不会错过它?

我今天正在阅读研究人员发现NVidia的Phys-X库使用x87 FP与SSE2.显然,对于速度超过精度的并行数据集来说,这将是次优的.然而,文章作者继续引用:

英特尔在2000年末引入P4后开始不鼓励使用x87.AMD自2003年K8以来已弃用x87,因为x86-64定义为SSE2支持; VIA的C7自2005年以来一直支持SSE2.在64位版本的Windows中,x87不适用于用户模式,完全禁止在内核模式下使用.自2005年以来,业内所有人都推荐SSE超过x87,除非软件必须在嵌入式Pentium或486上运行,否则没有理由使用x87.

我想知道这件事.我知道x87内部使用80位扩展双精度值来计算值,而SSE2则不然.这对任何人都没关系吗?这对我来说似乎很惊讶.我知道当我对平面中的点,线和多边形进行计算时,在进行减法时,值可能出乎意料地错误,并且由于缺乏精度,区域可能会折叠并且线条会相互别名.我想,使用80位值与64位值可能会有所帮助.

这是不正确的?如果没有,如果x87被淘汰,我们可以用什么来执行扩展的双FP操作?

floating-point sse2 x87

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

即使使用autocrlf = false,git status也会显示修改

我遇到了与此问题相同的问题:git status显示修改,git checkout - <file>不会删除它们

Git继续显示工作目录修改,即使git config --global core.autocrlf false:

E:\_dev\github\Core [master +0 ~93 -0]> git config --get-all core.autocrlf
false
false
Run Code Online (Sandbox Code Playgroud)

(注意我甚--system至将设置设置为false)

为什么看起来Git仍在修改我的行尾?

试图摆脱修改

底线

E:\_dev\github\Core [master +0 ~93 -0]> git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   tools/StatLight/StatLight.EULA.txt
... more changes ... …
Run Code Online (Sandbox Code Playgroud)

git revert git-status core.autocrlf

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

可以将F#类型提供程序合并到C#中

酷炫的新F#3.0特征类型提供程序可用于弥合F#数据类型或类与XML或WSDL等数据源结构之间的不匹配.然而,这种不匹配也是其他.NET语言(如C#)的挑战.

我想在C#代码中使用F#3.0提供程序.如果有的话我怎么能这样做?此外,如果我们不能,C#实现需要什么才能使用它们?

.net c# f# type-providers

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

通过编译器生成的locals以可为空的结构隐式转换为System.Double:为什么会失败?

鉴于以下内容,为什么会抛出InvalidCastException?我不明白为什么它应该在一个bug之外(这是在x86; x64与clrjit.dll中的0xC0000005崩溃).

class Program
{
    static void Main(string[] args)
    {
        MyDouble? my = new MyDouble(1.0);
        Boolean compare = my == 0.0;
    }

    struct MyDouble
    {
        Double? _value;

        public MyDouble(Double value)
        {
            _value = value;
        }

        public static implicit operator Double(MyDouble value)
        {
            if (value._value.HasValue)
            {
                return value._value.Value;
            }

            throw new InvalidCastException("MyDouble value cannot convert to System.Double: no value present.");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

以下是为以下内容生成的CIL Main():

.method private hidebysig static void Main(string[] args) cil managed
{
    .entrypoint
    .maxstack 3
    .locals init …
Run Code Online (Sandbox Code Playgroud)

c# cil nullable compiler-generated

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

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

是否有任何工具/库(.Net/WPF)来测量和存储用于分析的UI导航数据?

我想在UI中测量和分析用户移动和手势,以优化应用程序用户体验.我曾想过功能跟踪库(如EQATEC或Preemptive的运行时智能)会允许这样做.但是,情况似乎并非如此.

理想情况下,我希望能够设置UI,然后通过热图捕获鼠标和键盘导航手势.

我的搜索空洞了.这里有OSS或商业广告吗?

.net wpf usage-tracking

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

OnApplyTemplate未在自定义控件中调用

我有一个使用一些PART控件的自定义控件:

 [TemplatePart(Name = "PART_TitleTextBox", Type = typeof(TextBox))]
    [TemplatePart(Name = "PART_TitleIndexText", Type = typeof(Label))]
    [TemplatePart(Name = "PART_TimeCodeInText", Type = typeof(TextBlock))]
    [TemplatePart(Name = "PART_TimeCodeOutText", Type = typeof(TextBlock))]
    [TemplatePart(Name = "PART_ApprovedImage", Type = typeof(Image))]
    [TemplatePart(Name = "PART_CommentsImage", Type = typeof(Image))]
    [TemplatePart(Name = "PART_BookmarkedImage", Type = typeof(Image))]
    public class TitleBoxNew : Control
    {
        static TitleBoxNew()
        { 
            DefaultStyleKeyProperty.OverrideMetadata(
                typeof(TitleBoxNew),
                new FrameworkPropertyMetadata(typeof(TitleBoxNew)));
        } 

        public TitleBoxNew() { }

        // ... rest of class
    }
Run Code Online (Sandbox Code Playgroud)

此控件覆盖OnApplyTemplate:

public override void OnApplyTemplate()
{
      base.OnApplyTemplate();

      InitializeEvents();
}
Run Code Online (Sandbox Code Playgroud)

大部分时间都适用.我已经在窗口中的自定义选项卡控件中添加了控件,并且不会以某种方式为该控件调用OnApplyTemplate!为什么这不能像我期望的那样工作?

wpf

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