小编Jam*_*man的帖子

最新日期的Lambda表达式

假设我将模型定义为:Foo {Id, Date}.

有没有办法制作一个布尔lambda表达式,以便我可以得到最新日期的Foo?什么东西沿着(f => f.Date IsLatest)

c# linq lambda entity-framework

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

关闭一个错误和变异测试

在为我最喜欢的突变测试框架(NinjaTurtles)编写"Off By One"变异测试程序的过程中,我编写了以下代码,以便提供检查我的实现的正确性的机会:

public int SumTo(int max)
{
    int sum = 0;
    for (var i = 1; i <= max; i++)
    {
        sum += i;
    }
    return sum;
}
Run Code Online (Sandbox Code Playgroud)

现在这看起来很简单了,并没有让我觉得尝试改变IL中的所有文字整数常量会有问题.毕竟,只有3(the 0,the 1,and ++).

错误!

在第一次运行中它变得非常明显,它在这个特定的实例中永远不会起作用.为什么?因为将代码更改为

public int SumTo(int max)
{
    int sum = 0;
    for (var i = 0; i <= max; i++)
    {
        sum += i;
    }
    return sum;
}
Run Code Online (Sandbox Code Playgroud)

只在总和上加0(零),这显然没有效果.不同的故事,如果它是多组,但在这种情况下,它不是.

现在有一个相当简单的算法来计算整数之和

sum = max * (max + 1) / 2;
Run Code Online (Sandbox Code Playgroud)

我可以轻易地使突变失败,因为从任一常数中加1或减1会导致错误.(鉴于此max >= …

c# algorithm il mutation-testing ninja-turtles

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

SQL Server'In'语句项目顺序性能

鉴于SQL语句:

SELECT * 
FROM MY_TABLE
WHERE SomeNumberField in (0,99999)
Run Code Online (Sandbox Code Playgroud)

如果我可以保证大多数行MY_TABLE已经SomeNumberField设置为99999,并且可以预测这将保持不确定的情况,那么编写上述查询是否更好:

SELECT * 
FROM MY_TABLE
WHERE SomeNumberField in (99999,0)
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server performance sql-server-2005

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

保护DLL

很多人真的对dll发送给他们感兴趣,并且它们不是那种应该免费赠送的类型......

我只是想知道,如果我要出售我的组件,用户控件等,我将如何保护它们,在所有权/加密代码(如果可能)等方面.采取了哪些措施来帮助阻止人们使用你的没有付钱给他们?

.net c# dll protection

6
推荐指数
0
解决办法
1300
查看次数

jQuery和谷歌地图json响应

我从谷歌地图api获取地理位置信息时遇到麻烦

代码很简单

$.ajax({
    type: "GET",
    cache: false,
    url: "http://maps.googleapis.com/maps/api/geocode/json",
    dataType: "jsonp",
    data: {
        address: "Ljubljana " + "Slovenia",
        sensor: "false"
    },
    jsonpCallback:'json_response',
    success: function(data) {
        top.console.debug(data);
        $('#location_setter').dialog('close');
    },
    error: function() {
        alert("Error.");
    }
});


function json_response(data){
    alert("works");
}
Run Code Online (Sandbox Code Playgroud)

我总是得到一个错误.我也直接尝试过(我在某处读到应该在最后设置回调...

$.ajax({
    type: "GET",
    cache: true,
    url: "http://maps.googleapis.com/maps/api/geocode/json?address=Ljubljana Slovenia&sensor=false",
    dataType: "jsonp",
    jsonpCallback:'json_response',
    success: function(data) {
        top.console.debug(data);
        $('#location_setter').dialog('close');
    },
    error: function() {
        alert("Error.");
    }
});
Run Code Online (Sandbox Code Playgroud)

请求网址是否正确形成:

http://maps.googleapis.com/maps/api/geocode/json?address=Ljubljana%20Slovenia&sensor=false&callback=json_response

它给了我正确的json

请指教!

您可以在http://jsfiddle.net/PNad9/上 "玩"它

api ajax maps jquery json

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

Jquery还是CSS?...用于缩放div

<html>
  <body>
     <div id="text">
        <marquee>
            Hello there.....
        </marquee>
     </div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我试图制作一个"放大镜"效果<div>,但只是在它的中间(不是整个div).

在CSS或Jquery中有没有解决方案?

css jquery

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

C#动态类型导致使用IL中的反射解析Console.WriteLine

我一直在使用LINQPad中的一些C#语句来理解发出的中间语言代码.

我首先尝试了以下代码:

var Container = new {Name = "James"};
Console.WriteLine(Container.Name);
Run Code Online (Sandbox Code Playgroud)

并且看到以下六行IL发射:

IL_0001:  ldstr       "James"
IL_0006:  newobj      <>f__AnonymousType0<System.String>..ctor
IL_000B:  stloc.0     
IL_000C:  ldloc.0     
IL_000D:  callvirt    <>f__AnonymousType0<System.String>.get_Name
IL_0012:  call        System.Console.WriteLine
Run Code Online (Sandbox Code Playgroud)

这是我所期望的,并且非常好地演示了匿名类型是如何只读/不可变的,因为没有set_Name属性.

接下来我尝试了这些陈述:

dynamic Container = new System.Dynamic.ExpandoObject();
Container.Name = "James";
Console.WriteLine(Container.Name);
Run Code Online (Sandbox Code Playgroud)

这会导致大量的IL被释放.我不会在这里粘贴它,但你可以在这个pastebin中找到它.

我理解在管理动态类型和ExpandoObject方面存在相当多的开销,但我不明白为什么看起来System.Console.WriteLine在这种情况下调用是通过内部反射来执行的.

IL_0072:  ldstr       "WriteLine"
....
IL_00BF:  ldtoken     System.Console
Run Code Online (Sandbox Code Playgroud)

在第一段代码中,在检索并存储属性之后,它是一个调用的单行IL语句System.Console.WriteLine.

那么为什么一个dynamic类型的呼叫需要额外的所有这些?

c# compiler-construction reflection il dynamic

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

有关内存中Caste C#引用类型的信息

如果我有两个类,A并且BB派生自A:

class A {}
class B : A { }
Run Code Online (Sandbox Code Playgroud)

我可以上溯造型很愉快的一个实例BA.

B b = new B();
A a = b;
Run Code Online (Sandbox Code Playgroud)

现在,我可以理解运行时如何确定底层类型是B,如ECMA-335(公共语言基础结构(CLI)分区I到VI)的第132页所述

实例化类型的对象应携带足够的信息,以便在运行时恢复其确切类型(包括其通用参数的类型和数量).[基本原理:这是正确实现测试和测试实例以及反射功能所必需的

那么,运行时如何知道虽然底层类型B实际上存储在一个A.我知道一个事实,我不会看到可用的方法B,但如果基础类型是B,它如何存储存储位置的类型A

那有意义吗?

c# memory polymorphism clr casting

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

接口的类层次结构C#

我正在玩一些类和接口,并开发了一种简单的方法来确定类的层次结构,即识别继承链.

public static void OutputClassHierarchy(Type ty)
{
    if (ty.BaseType == null)
    {
        Console.WriteLine("{0}: Base", ty);
        Console.WriteLine("");
        return;
    }
    Console.WriteLine("{0} : {1}", ty, ty.BaseType);
    OutputClasshierarchy(ty.BaseType);
}
Run Code Online (Sandbox Code Playgroud)

因此对于

OutputClassHierarchy(typeof(System.Exception));
Run Code Online (Sandbox Code Playgroud)

我得到输出:

System.Exception:System.Object

System.Object:Base

这是我的期望.

但是,如果我尝试使用实现另一个接口的接口,即

interface IMyInterface : IDisposable
{
    void Hello();
}

...

OutputClassHierarchy(typeof(IMyInterface));
Run Code Online (Sandbox Code Playgroud)

我得到输出:

MyNameSpace.IMyInterface:Base

那么,这里发生了什么?是否有可能推断出上面声明的接口层次结构,或者在接口方面没有这样的东西?

还有,System.Object这一切在哪里?我以为一切都建立在它之上.

c# inheritance interface class

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

AutoDiscoverURL 有什么用?

在分析程序时,我看到一个名为 AutoDiscoverURL 的函数!我用谷歌搜索过,不幸的是无法弄清楚。

c# asp.net c#-3.0

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