在下面的代码"where T:WsgTypes.RouteRestriction"中,我可以添加多个类,以便T只能是我感兴趣的那几个类类型
public static T GetDetails<T>(string code) where T : WsgTypes.RouteRestriction
{
T details;
if (typeof(T) == typeof(WsgTypes.TicketType))
{
details = TicketTypeDetail.GetDetails(code) as T;
}
else if (typeof(T) == typeof(WsgTypes.RouteRestriction))
{
details = RouteRestrictionDetail.GetDetails(code) as T;
}
else
{
throw new NotSupportedException("");
}
return details;
throw new NotImplementedException();
}
Run Code Online (Sandbox Code Playgroud) 这是一个关于泛型而不是亚音速的问题:
想象一下,如果有以下代码:
List<int> result =
DB.Select(Product.Columns.Id)
.From<Product>()
.ExecuteTypedList<int>();
Run Code Online (Sandbox Code Playgroud)
这很好用,并返回一个包含我的Product表中的ID的通用列表.
但是,如果我想获得ProductName的列表:
List<String> result =
DB.Select(Product.Columns.ProductName)
.From<Product>()
.ExecuteTypedList<String>();
Run Code Online (Sandbox Code Playgroud)
它会抛出编译器消息(翻译自德语):
"string"必须是非抽象类型,其公共构造函数不带参数,以便用作泛型类型或在泛型方法"SubSonic.SqlQuery.ExecuteTypedList()"中用作参数"T".
cause:String没有空的构造函数:
int i = new int; // works
String s = new String; // compiler error: "string" does not contain a constructor that takes '0' argument
Run Code Online (Sandbox Code Playgroud)
如果我使用它,但是有更优雅的方式,我可以使用List<Object>
而不是它有效List<String>
吗?
更新:List<Object>
不起作用.我确实得到了一个对象列表,但这似乎是"空"对象,不包含我的ProductNames(object.ToString()返回{Object}
)
如何使用Perl在文件中找到扩展的ASCII字符?任何人都可以获得脚本吗?
.....提前致谢.....
我正在编写的核心数据应用程序存在一个小问题.我有两个不同的模型,上下文和持久的商店.一个用于我的应用数据,另一个用于具有相关信息的网站.
大多数情况下,我将我的应用程序中的一条记录与另一条源中的另一条记录完全匹配.然而,有时候,我必须回退到模糊字符串匹配以链接两个记录.我正在尝试匹配歌曲标题.我的本地标题可以是(编写)"The French Idealist is in your pensée"
,也可以是远程歌曲标题"01 - 10 - French idealist in in you're pensee, The (dub remix, feat. DJ Objective-C)"
我搜索堆栈溢出,谷歌,可可文档,我找不到任何关于如何在这些情况下进行模糊匹配的明确答案.我的字符串可以从任何东西开始,有一堆特殊字符,通常以随机或被忽略的字符结尾.
Regexp不会这样做,也不是NSPredicates,Soundex与外国名称不兼容,也许Levenshtein不够(或者它会不会?).
我正在寻找一组十几个潜在比赛中的冠军头衔,但我非常愿意做这个操作.100%准确度不是目标.
我想删除被忽略的单词,提取关键词(在这个例子中,"法语,理想主义者,pensée"),连接它们,然后使用Levenshtein距离(歌曲标题中的单词应该是相同的顺序).
在我的特殊情况下,它会起作用吗?关于这个问题的行业标准是什么(我不能成为世界上唯一想要匹配略有不同歌曲名称的人)Core Data,Cocoa或Objective-C可以帮助我吗?
非常感谢.
如果我编译(在G ++下)并运行以下代码,则打印"Foo :: Foo(int)".但是,在使复制构造函数和赋值运算符成为私有之后,它无法使用以下错误进行编译:"错误:'Foo :: Foo(const Foo&)'是私有的".如果只在运行时调用标准构造函数,它如何需要复制构造函数?
#include <iostream>
using namespace std;
struct Foo {
Foo(int x) {
cout << __PRETTY_FUNCTION__ << endl;
}
Foo(const Foo& f) {
cout << __PRETTY_FUNCTION__ << endl;
}
Foo& operator=(const Foo& f) {
cout << __PRETTY_FUNCTION__ << endl;
return *this;
}
};
int main() {
Foo f = Foo(3);
}
Run Code Online (Sandbox Code Playgroud) 我在Visual Studio 2008中调试(web)项目.我正在打破一个断点.正如预期的那样,F10继续到下一行,但是下一个F10只是停止调试,代码继续而没有任何调试(比如按F5).为什么会这样?
有线索吗?
我想多次阅读我的程序的输出.有些事情,如果我通过X我得到输出,我显示它,然后再次,如果我通过Y我得到输出,我显示它.没有重新启动过程.尝试它我已经制定了ac程序
#include<stdio.h>
int main()
{
int i;
int j;
while(scanf("%d", &i))
{
for(j = 0; j<=i;j++)
printf("%d\n",j);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
现在我正在用C#进行插入,当我在文本框中输入文本时,它通过重定向standardinput(一个streamwriter)传递给程序并读取输出我称之为standardoutput(一个streamreader).readtoend() .
但这对我不起作用.因为它进入等待状态直到流返回一些指示告诉结束已被读取.
我怎么能做到这样的事情?
我尝试了异步读取,我调用了beginoutputread方法,但后来我不知道读取何时完成!有一种方法可以让我在原始程序中添加一个标记,以指示当前输入的输出结束.有没有其他方法让我实现它?
如何在特定时间在Mac Os X中运行shell脚本?我知道这是与cron相关的东西,但我无法弄明白.有人可以帮我提供相关代码.
在我们的Web服务中,我们通过JavaScript设置了一个cookie,我们再次用Java(Servlet)读取
但是我们需要逃避cookie的价值,因为它可能包含非法字符,例如'&',这会扰乱cookie.
有没有透明的方法来逃避(JavaScript)和unescape再次(Java)为此?
当我按F5时,一切都编译得很好,但是当应用程序启动时,VS崩溃,显示"及时调试器"对话框.
不止一个(类似的)解决方案存在这个问题.一个只包含一个表单的新解决方案.这个问题一开始就出现了,据我所知,我没有对环境做过任何改变.
我可以在没有调试的情况下启动应用程序(ctrl + F5),然后附加调试器.
我正在使用VS 2008 sp 1.