小编Mik*_*den的帖子

C#比SortedList <>更快排序

我们有一个

SortedList<Resource, Resource> resources =
    new SortedList<Resource, Resource>(new ResourceIdle());
Run Code Online (Sandbox Code Playgroud)

我们在模拟中使用的.这个资源列表以这种方式初始化,因为我们希望在任何时间点传递不同的比较器.我们SortedList<>遇到的第一个问题是需要在比较器中进行额外的比较,以便我们可以添加Resource具有相同属性的不同实例.例如,如果Comparer看起来像:

public int Compare(Resource x, Resource y)  
{  
    int priority1 = x.Priority;    
    int priority2 = y.Priority;    

    if (priority1 > priority2) { 
      return -1;  
    } else if (priority1 < priority2) {  
      return 1;  
    } else {  
      return (x.Id.CompareTo(y.Id));  
    }  
}  
Run Code Online (Sandbox Code Playgroud)

然后我们必须在优先级相同时进行额外的比较,否则我们会返回具有相同键的条目的异常.所以我的问题是,还有另一种方法可以达到这个目的吗?而作为第二个问题,有什么比SortedList<>订购大量对象更快?

c# sorting sortedlist

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

使我的旧工作流程适应Backbone

我开始构建一个新的应用程序,我想使用Backbone作为我的框架.以下是此(以及大多数应用)遵循的基本工作流程.

Backbone使用的正确/最佳模型是什么?

旧方式
用户导航到页面.
选择"创建新窗口小部件"
用户会
看到一个填充了输入的表单此时我可能会输入所输入的值(在通过基本验证之后),将它们打包并通过ajax请求将它们发送到服务器
请求返回为"确定"并且用户被带到其他地方(此步骤并不完全重要)

一些基本的伪代码

// Grab values
var userName = $('.UserName').val(),  
    dateOfBirth = $('.DateOfBirth').val();  
  ...  
  ...   
  ...

 $.ajax({
  url: "/Webservices/ProcessStuff",
  success: function(result){
   if (result) { 
    // Render something or doing something else
   } else {
    // Error message
   }
  },
  error: function () { 
    // Error message
  }
});
Run Code Online (Sandbox Code Playgroud)

Backbone方式
使用与上面相同的例子; 我假设我有一个用户信息模型和一个显示输入的视图.但是,处理对Web服务的实际调用是我感到困惑的事情之一.这需要去哪里?在模型中或click某些"Go"按钮的视图中?

Model.UserInformation = Backbone.Model.extend({ username: null, dateOfBirth: null });

也许还有这些UserInformation模型的集合?
UserInformations = Backbone.Collection.extend({ model: Model.UserInformation' });

所以我要问的底线是......
实现这一功能的最佳方法是什么?
实际执行CRUD的正确方法是什么?将实际调用放在哪里删除/更新/创建/等?

javascript mvvm backbone.js

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

如何判断类属性是否具有公共集(.NET)?

我有这个:

public string Log
        {
            get { return log; }
            protected set
            {
                if (log != value)
                {
                    MarkModified(PropertyNames.Log, log);
                    log = value;
                }
            }

        }
Run Code Online (Sandbox Code Playgroud)

我的数据绑定实用程序类执行此操作:

PropertyInfo pi = ReflectionHelper.GetPropertyInfo(boundObjectType, sourceProperty);

if (!pi.CanWrite)
                SetReadOnlyCharacteristics(boundEditor);
Run Code Online (Sandbox Code Playgroud)

但PropertyInfo.CanWrite并不关心该集是否可公开访问,只是它存在.

如何确定是否有公共场景,而不仅仅是任何场景?

.net c# data-binding reflection

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

横向规则:好或坏的设计决策

我有一个我自己构建的自定义控件,其中包含要选择的项目列表.我担心这些项目会一起运行,看看这个列表中有多种不同类型的操作.

  • 创建
  • 编辑
  • 视图

所以我能够通过使用水平规则将这些分成组.

我工作的人认为水平规则是一个糟糕的设计选择,并希望我将其改为风格化的DIV.除了简单易懂之外,我真的没有其他意见.我实施的HR很好,看起来很好.

思考?横向规则是一个好的或坏的设计选择?

html

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

从静态方法获取访问权限

我的大脑今天早上没有工作.我需要一些帮助从静态方法访问一些成员.下面是一个示例代码,如何修改它以便TestMethod()可以访问testInt

public class TestPage
{ 
    protected int testInt { get; set; }

    protected void BuildSomething
    {
      // Can access here
    }

    [ScriptMethod, WebMethod]
    public static void TestMethod()
    {
       // I am accessing this method from a PageMethod call on the clientside
       // No access here
    }  
}
Run Code Online (Sandbox Code Playgroud)

c# static-methods

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

指南针省略号语法

我觉得自己像个白痴,但我真的无法理解这一点.

我正在使用常规Twitter Bootstrap项目的John Long的Sass Twitter Bootstrap转换.位于GitHub

每当我编译它时,我会收到以下错误:

    error sass/bootstrap.scss (Line 246 of sass/bootstrap/_mixins.scss: Invalid
CSS after "...-shadow($shadow": expected ")", was "...) { ")
Sass::SyntaxError on line ["246"] of C: Invalid CSS after "...-shadow($shadow":
expected ")", was "...) { "
Run Code Online (Sandbox Code Playgroud)

这是它抱怨的语法:

// Drop shadows
@mixin box-shadow($shadow...) { 
  -webkit-box-shadow: $shadow;
     -moz-box-shadow: $shadow;
          box-shadow: $shadow;
}
Run Code Online (Sandbox Code Playgroud)

我之前从未在mixin上使用省略号看到过这种语法.

我的问题是如何解决此错误.这显然是我的问题.

我正在使用Compass v0.12.2

css sass twitter-bootstrap compass-sass

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

连锁顺序任务

我有3个我想要处理的任务,当这3个任务完成后,我想做以下事情:

  1. Concat将这三个文件放在一起
  2. 丑化
  3. 写入磁盘

随着Grunt我对所有这一切一个漫长的过程.这是我尝试过的Gulp

gulp.task('libs', function () {
return gulp.src('js/libs/*.js')
        .pipe(concat('01.libs.js', {newLine: ';'}))
        .pipe(gulp.dest('min'));
});

gulp.task('plugins', function () {
    return gulp.src('js/plugins/*.js')
            .pipe(concat('02.plugins.js', {newLine: ';'}))
            .pipe(gulp.dest('min'));
});

gulp.task('apps', function () {
    return gulp.src('js/apps/**/*.js')
            .pipe(concat('03.apps.js', {newLine: ';'}))
            .pipe(gulp.dest('min'));
});

gulp.task('scripts', ['libs', 'plugins', 'apps'], function () {
    return gulp .src('min/*.js')
            .pipe(concat('testFile.js', {newLine: ';\r\n'}))
            .pipe(rename({suffix: '.min.v' + pkg.version }))
            .pipe(gulp.dest('min'))
            .pipe(notify({ message: 'Scripts minified'}));
});
Run Code Online (Sandbox Code Playgroud)

这是有效的,但我想只输出输出,而不是写出3个中间文件,然后将它们连接起来.

所以我接着尝试了:

function libs () {
    return gulp.src('js/libs/*.js')
            .pipe(concat('01.libs.js', {newLine: ';'}));
}

function plugins () …
Run Code Online (Sandbox Code Playgroud)

node.js q gulp

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

Jasmine/PhantomJs spec跑步者

我无法让我的测试使用phantomJs运行.

吞咽任务

var jasminePhantomJs = require('gulp-jasmine2-phantomjs');
gulp.task('test', function() {
    return gulp.src('./SpecRunner.html')
        .pipe(jasminePhantomJs());
});
Run Code Online (Sandbox Code Playgroud)

SpecRunner.html

<script src="lib/jquery.min.js"></script>
<script src="lib/lodash.min.js"></script>

<script type="text/javascript" src="lib/jasmine-2.0.0/jasmine.js"></script>
<script type="text/javascript" src="lib/jasmine-2.0.0/jasmine-html.js"></script>
<script type="text/javascript" src="lib/jasmine-2.0.0/boot.js"></script>
<script type="text/javascript" src="lib/jasmine-2.0.0/jasmine-jquery.js"></script>

<!-- include source files here... -->
<script type="text/javascript" src="dist/exportToCsv.js"></script>

<!-- include spec files here... -->
<script type="text/javascript" src="spec/exportToCsvSpec.js"></script>
Run Code Online (Sandbox Code Playgroud)

独立运行此文件会报告我的所有测试exportToCsvSpec都要通过.但是,当我尝试运行我的gulp任务时,我得到以下内容:

Using gulpfile ~/gulpfile.js
Starting 'test'...
Start running spec file:  /ExportToCsv/SpecRunner.html
PhantomJS path:  /ExportToCsv/node_modules/gulp-jasmine2-phantomjs/node_modules/phantomjs/lib/phantom/bin/phantomjs
Loading /ExportToCsv/SpecRunner.html
Page has timed out; aborting.

gulp-jasmine2-phantomjs: ? Assertions failed in SpecRunner.html
'test' errored after …
Run Code Online (Sandbox Code Playgroud)

unit-testing jasmine phantomjs gulp

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

RequireJs文本插件在Chrome中提供Cross origin错误

我有一些非常基本的RequireJs代码,它使用简单的html获取html文件.在Firefox 8.0中它工作正常,但在我的Chrome(17.0.9.xxx)版本中,我收到以下错误:

仅支持HTTP的跨源请求.

这可能只是这个Chrome版本或文本插件的问题吗?

define([
    'jquery', 
    'backbone', 
    'text!templates/home/listOfStuff.html'
    ], function ($, Backbone, mainTemplate) {
        var mainView = Backbone.View.extend({
            el: $('#list'),
            render: function () { 
                this.el.html(mainTemplate);
            }

        });


        // return the view object
        return new mainView;

});
Run Code Online (Sandbox Code Playgroud)

当需要尝试获取html文件时,发生错误.

requirejs backbone.js

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

为什么Backbone的事件obj缺少属性?

我正在研究一些拖放功能,并通过标准的Backbone方式附加事件:

events: { 
 'dragenter': 'dragEnter',
 'dragend': 'dragEnd'
 ....,
 .....
}
Run Code Online (Sandbox Code Playgroud)

我在我的函数中注意到event传递给它的对象不包含html5规范中概述的某些属性.

具体来说,dataTransferobj丢失了.

我创建了一个快速演示来演示我的问题.只需将文件或其他内容拖到其上即可在日志中查看.

我的问题是为什么会发生这种情况?我查看了文档,似乎无法找到它.

jquery javascript-events backbone.js

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