我正在使用ScriptCS(这很棒!)但我无法弄清楚如何在.csx脚本文件中定义扩展方法.
举个例子:
using System.IO;
public static class Extensions
{
public static string Remove(this string source, params string[] toRemove)
{
foreach(var r in toRemove)
{
source = source.Replace(r,"");
}
return source;
}
}
string[] entries =
Directory
.GetFiles(
@"C:\Users\blah\blah",
"*.mp4",
SearchOption.AllDirectories)
.Select( p => p.Remove("Users"))
.ToArray();
foreach(var e in entries)
{
Console.WriteLine(e);
}
Run Code Online (Sandbox Code Playgroud)
这会产生错误:
错误CS1109:扩展方法必须在顶级静态类中定义; 扩展是一个嵌套类
我猜测ScriptCS将csx包装在一些导致扩展嵌套的类中,有什么方法可以解决这个问题吗?
我的小组正在考虑将我们的Web UI平台从ASP.net切换到Silverlight,原因有几个.需要说明的是,这些是为我们的用户提供服务的商业网站,我们自己开发和托管它们.
有没有人将其业务/内部网网站从传统的基于服务器的Web技术(如ASP.net)切换到Silverlight?或者您是否已将Silverlight添加到您的网站?如果是这样...
简而言之,如果我开始在我的页面上使用Silverlight,我的网站的用户会变得怪异吗?
如果您的回答是"这取决于",请了解决定因素是什么.
顺便说一句,是否有一种简单的方法可以检测有多少用户安装/已安装Silverlight?
编辑:
感谢您的答案到目前为止!我可能会到达,但有没有人有部署Silverlight应用程序的具体经验?我想知道是否有人经历过这个以及他们的用户是否有任何重大问题.
我有一个复杂的LINQ查询(使用LINQ 2 EF)可以返回重复的结果,因此我使用该.Distinct()方法来避免重复.这是骨架:
var subQuery1 = // one query...
var subQuery2 = // another query...
var result = subQuery1.Distinct().Union( subQuery2.Distinct() ).ToArray();
Run Code Online (Sandbox Code Playgroud)
每个子查询将一个公共用户表与另一个表连接起来并执行"where"查询,稍后将结果组合在一起.Union(...).这个工作正常,直到表被修改为包含XML列,这导致此异常:
不能将xml数据类型选为不同的,因为它不具有可比性
在这种情况下,我不关心XML列是否在结果中是等效的.实际上我只需要确保主键UserId在结果中是不同的.
有没有办法使用Distinct()但忽略XML列或更简单的方法来确保我UserId以有效的方式从结果中删除记录?理想情况下,这不会从数据库中检索重复记录,也不需要进行后处理来删除重复记录.
更新: 我发现如果我提前将查询序列化到数组,则不需要任何类型的比较器,因为Linq2Objects没有XML不同的选择问题.例如,我可以这样做:
var subQuery1 = // one query...
var subQuery2 = // another query...
var result =
subQuery1.Distinct().ToArray().Union(
subQuery2.Distinct().ToArray() )
.ToArray();
Run Code Online (Sandbox Code Playgroud)
所以我真正想要的是一种避免序列化中间查询并直接执行Linq2Entities调用的方法,该调用不会获取具有重复UserIds的记录.感谢迄今为止的所有答案.
当我尝试运行MVS 2012时,我总是收到错误 - 在库DLL MSVCR110.dll中找不到过程_crtCreateSymbolicLinkW的入口点.我已经从我的其他计算机复制了这个dll文件,其中一切正常,但它没有帮助0_o.操作系统 - Windows 7.
我已经google了一下,我还没有找到一个很好的列表,列出了.net CLR中的哪些类没有包含在'CoreCLR'又名Silverlight中.
什么是Windows .net框架中缺少的Silverlight?
另外,.net Framework没有任何Silverlight运行时具有的功能吗?
我似乎经常编写类似于这样的模式的jQuery代码:
淡出==>做幕后的事情==>淡入下
图:
/// <reference path="jquery-1.4.2.js" />
/// <reference path="jquery-1.4.2-vsdoc.js" />
/// <reference path="jquery.validate-vsdoc.js" />
var fade = "slow";
$(document).ready(function () {
// Some event occurs
$("#Trigger").change(function () {
var id = $(this).find(":selected").val();
// Fade out target while I do something
$("#Target").fadeOut(fade, function () {
if (id != "") {
// Do Something
$("#Target").load(
"/Site/Controller/Action/"+id, null,
function () {
// Fade in Target
$("#Target").fadeIn(fade);
});
}
});
});
});
Run Code Online (Sandbox Code Playgroud)
这工作正常,但回调层次结构变得非常深,我只是想知道是否有更简单的方法来做这个或更好的技术,不会导致这么多级别的回调
我只是在探索ruby,并且想知道将一个方法添加到对象类的理论可能性.例如,定义一个接受参数的方法,并将方法添加到该参数的类中(而不仅仅是参数对象本身).像这样的例子:
class SomeClass
end
class AnotherClass
end
alpha = SomeClass.new
beta = AnotherClass.new
def AddHelloMethodTo param
# This is where I'm trying to
# add a method to the class of the parameter
def param.class.Hello
"Hello"
end
end
AddHelloMethodTo alpha
AddHelloMethodTo beta
gamma = AnotherClass.new
alpha.Hello
beta.Hello
gamma.Hello
Run Code Online (Sandbox Code Playgroud)
(对不起,如果我有语法错误/错别字我真的很新!)
请注意我怎么不调用AddHelloMethodToon gamma但我希望Hello被定义,因为我把它添加到了类中.
这可能吗?
在您学习的时候,OpenGL/GLUT参考对于日常编程是否有用?
理想情况下,我正在寻找具有大量C++示例代码的东西,以帮助我学习开发OpenGL应用程序以及类似于MSDN为.net编程提供的API的详细信息.
如果没有一站式服务,那么请列出我应该使用的参考资料集以及每个参考资料的优势.