假设我将模型定义为:Foo {Id, Date}.
有没有办法制作一个布尔lambda表达式,以便我可以得到最新日期的Foo?什么东西沿着(f => f.Date IsLatest)?
在为我最喜欢的突变测试框架(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 >= …
鉴于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) 很多人真的对dll发送给他们感兴趣,并且它们不是那种应该免费赠送的类型......
我只是想知道,如果我要出售我的组件,用户控件等,我将如何保护它们,在所有权/加密代码(如果可能)等方面.你采取了哪些措施来帮助阻止人们使用你的没有付钱给他们?
我从谷歌地图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)
请求网址是否正确形成:
它给了我正确的json
请指教!
您可以在http://jsfiddle.net/PNad9/上 "玩"它
<html>
<body>
<div id="text">
<marquee>
Hello there.....
</marquee>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我试图制作一个"放大镜"效果<div>,但只是在它的中间(不是整个div).
在CSS或Jquery中有没有解决方案?
我一直在使用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类型的呼叫需要额外的所有这些?
如果我有两个类,A并且BB派生自A:
class A {}
class B : A { }
Run Code Online (Sandbox Code Playgroud)
我可以上溯造型很愉快的一个实例B来A.
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?
那有意义吗?
我正在玩一些类和接口,并开发了一种简单的方法来确定类的层次结构,即识别继承链.
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这一切在哪里?我以为一切都建立在它之上.
在分析程序时,我看到一个名为 AutoDiscoverURL 的函数!我用谷歌搜索过,不幸的是无法弄清楚。
c# ×7
il ×2
jquery ×2
.net ×1
ajax ×1
algorithm ×1
api ×1
asp.net ×1
c#-3.0 ×1
casting ×1
class ×1
clr ×1
css ×1
dll ×1
dynamic ×1
inheritance ×1
interface ×1
json ×1
lambda ×1
linq ×1
maps ×1
memory ×1
performance ×1
polymorphism ×1
protection ×1
reflection ×1
sql ×1
sql-server ×1
t-sql ×1