我正在使用此代码,我正在调用run从dll动态加载的类的List方法:
for (int i = 0; i < robotList.Count; i++)
{
Type t = robotList[i]; //robotList is a List<Type>
object o = Activator.CreateInstance(t);
t.InvokeMember("run", BindingFlags.Default | BindingFlags.InvokeMethod, null, o, null);
}
Run Code Online (Sandbox Code Playgroud)
在invokeMember被调用run推法每一类在列表中.
现在我如何在一个单独的线程中调用此run方法invokeMember?这样我就可以为每个被调用的方法运行单独的线程.
我有一个包含100多个表的DataContext(Linq到Sql),是否可以获取所有这些表的列表,然后让它们打印到控制台?这可能是一个愚蠢的问题.
谢谢.
在SQL Server(2005+)中,我需要索引一个列(仅限完全匹配)nvarchar(2000+).什么是最具可扩展性,高性能的方法?
在SQL Server(2005+)中,使用以下类型对列进行索引的实际区别是什么:
nvarchar(2000)char(40)binary(16)例如,对索引binary(16)列的查找是否明显快于对索引的查找nvarchar(2000)?如果是这样,多少钱?
显然小在某些方面总是更好,但我不太熟悉SQL Server如何优化其索引以了解它如何处理长度.
在关于SO的另一个问题中,我回答了类似下面的代码并得到了一个评论,即LINQ查询可能在for/each的每次迭代中都得到了评估.真的吗?
我知道LINQ-querys在它的项目被评估之前没有执行,因此这种迭代结果的方式似乎可以使它在每次迭代中运行?
Dim d = New Dictionary(Of String, String)()
d.Add("Teststring", "Hello")
d.Add("1TestString1", "World")
d.Add("2TestString2", "Test")
For Each i As String In From e In d Where e.Value.StartsWith("W") Select e.Key
MsgBox("This key has a matching value:" & i)
Next
Run Code Online (Sandbox Code Playgroud) 我保证今晚的最后一个问题.这些指针给我带来了严重的麻烦.
我有一个<Point名为Polygon 的std :: list >和一个std ::多边形列表定义如下:
typedef std::list<Point> Polygon;
typedef std::list<Polygon> PolygonList;
// List of all our polygons
PolygonList polygonList;
Run Code Online (Sandbox Code Playgroud)
我创建了下面的方法,尝试从(x,y)中删除最近的点,检查我的polygonList中的所有多边形.
void deleteNearestPoint(int x, int y)
{
y = screenHeight - y;
Polygon &closestPolygon = polygonList.front();
Polygon::iterator closestPoint = closestPolygon.begin();
float closestDistance = sqrt(pow(x - closestPoint->x, 2) + pow(y - closestPoint->y, 2));
// Search PolygonList
PolygonList::iterator listIter;
Polygon::iterator iter;
for(listIter = polygonList.begin(); listIter != polygonList.end(); listIter++)
{
Polygon &tempPolygon = *listIter;
for(iter = tempPolygon.begin(); iter != tempPolygon.end(); …Run Code Online (Sandbox Code Playgroud) 我希望这个问题适合stackoverflow.如果没有,我会马上删除这个问题.
我刚刚编写了我的第一个python程序.我们的想法是你可以发出一个命令,并将它并行发送到几个服务器.
这仅用于个人教育目的.该计划有效!我真的想在python上变得更好,因此我想问下列问题:
我有一个很好的编程背景,但是我花了很长时间才开发出适合PHP的样式(PEAR编码标准,知道使用什么工具以及何时使用).
来源(一个文件,92行代码)
让我们假设我用来迭代节点列表的代码
foreach(XmlNode nodeP in node.SelectNodes("Property"))
{
propsList.Add(nodeP.Attributes["name"].Value, true);
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,表达式node.SelectNodes("Property")是否在每次迭代期间为每个或一次进行评估?
我想通过学习更多关于依赖注入/ IoC和其他最佳实践方法来成为一名优秀的编程公民.为此,我有一个项目,我正在努力做出正确的选择,并以"正确"的方式设计一切,无论这意味着什么.Ninject,Moq和ASP.NET MVC帮助实现可测试性并将应用程序"推出门外".
但是,我有一个关于如何为我的应用程序所包含的对象设计实体基类的问题.我有一个简单的类库,Web应用程序是建立在它之上的.该库公开了一个IRepository接口,默认实现(应用程序使用的接口)使用了Linq-to-SQL(DataContext等没有公开给Web应用程序),只是包含获取这些实体的方法.存储库基本上看起来像这样(简化):
public interface IRepository
{
IEnumerable<T> FindAll<T>() where T : Entity
T Get<T>(int id) where T : Entity
}
Run Code Online (Sandbox Code Playgroud)
默认实现使用DataContext上的GetTable()方法来提供正确的数据.
但是,这要求基类"Entity"具有一些功能.通过创建一个与Linq-to-SQL给我的映射对象同名的部分类,很容易让我的对象继承它,但是这样做的"正确"方法是什么?
例如,上面的接口具有通过它的id获取实体的功能 - 从实体派生的所有不同类的类确实具有int类型的"id"字段(从它们各自的表的主键映射),但是我如何以一种允许我像这样实现IRepository的方式来指定它呢?
public class ConcreteRepository : IRepository
{
private SomeDataContext db = new SomeDataContext();
public IEnumerable<T> FindAll<T>() where T : Entity
{
return db.GetTable<T>().ToList();
}
public T Get(int id) where T : Entity
{
return db.GetTable<T>().Where(ent => ent.id == id).FirstOrDefault();
}
}
Run Code Online (Sandbox Code Playgroud)
我在无编译器的PC上从内存中执行此操作,因此原谅任何错误,您希望得到我的意图.
这里的诀窍当然是为了编译它,必须确定Entity承诺从它派生的每个人都有一个id字段.
我可以创建一个抽象字段,或者由Linq-to-SQL粘贴在生成的类中的id字段"隐藏"的普通字段.
但这一切都像是作弊,甚至给编译器警告.
应该"实体"真的是"IEntity"(而不是接口),我应该尝试以Linq-to-SQL将实现的方式定义id字段?这也可以很容易地指定实体实现者需要实现的其他接口.
或者"实体"应该是一个带有抽象id字段的抽象基类,它是否应该以抽象方式实现所需的接口以供其他人覆盖?
我不太清楚C#是否能够找到优雅的解决方案,所以我很乐意听到更有经验的系统设计师的一些基础经验.
谢谢!
编辑4月10日:
我看到我在这里遗漏了一些重要的东西.我的IRepository有两个具体的实现 - 一个是使用LINQ to …
如何编写LINQ to SQL等效于:
INSERT INTO Table1 (field1, field2, field3)
SELECT field1, field2, field3
FROM Table2
WHERE (field1= @field1)
Run Code Online (Sandbox Code Playgroud)
谢谢
为什么aspnet_users使用guid作为id而不是递增int?
还有什么理由不在其他表中使用它作为主键?感觉有点奇怪,因为我知道我以前使用的大多数应用程序只使用普通的int系统.
我也将开始使用此id来匹配扩展的详细信息表以获取额外的用户prefs等.我还在考虑使用带有guid和int的链接表,但我决定,因为我不认为我实际上需要将用户ID作为public int.
虽然我想有int(感觉更容易做用户查找等stackoverflow.com/users/12345/user-name),因为我只是要有用户名,我不认为我需要携带这个当我需要找到一个用户int时,周围的项目并且会增加查找的额外复杂性.
感谢您对此任何帮助.
.net ×3
c# ×3
enumeration ×2
linq ×2
linq-to-sql ×2
asp.net ×1
asp.net-3.5 ×1
c++ ×1
datacontext ×1
guid ×1
indexing ×1
oop ×1
performance ×1
pointers ×1
python ×1
reflection ×1
sql ×1
sql-server ×1