我只是快速阅读了这篇文章(特别是关于他选择使用结构/字段而不是类/属性的原因)并看到了这一行:
属性的结果不是真正的l值,因此我们不能执行类似Vertex.Normal.dx = 0的操作.属性的链接会产生非常意外的结果.
他在谈论什么样的意外结果?
我有一个带有属性的类数组Date
,即:
class Record
{
public DateTime Date { get; private set; }
}
void Summarize(Record[] arr)
{
foreach (var r in arr)
{
// do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
我必须在这个数组中找到earliest
(最小)和latest
(最大)日期.
我怎么能用LINQ做到这一点?
我的一个生产数据库中有一个奇怪的问题.长话短说,简单查询:
select id, trunc(stdate) from table_name where trunc(stdate) = '05-FEB-09';
Run Code Online (Sandbox Code Playgroud)
没有返回任何行.然而,
select trunc(stdate) from table_name where id = sought_after_id;
Run Code Online (Sandbox Code Playgroud)
回来了'05-FEB-09'
.只有在我尝试之后:
update table_name set stdate = '05-FEB-09' where id = sought_after_id;
Run Code Online (Sandbox Code Playgroud)
我的原始查询按预期工作:
select id, trunc(stdate) from table_name where trunc(stdate) = '05-FEB-09';
> sought_after_id, '05-FEB-09'
Run Code Online (Sandbox Code Playgroud)
那么,我的标准值发生了什么?
我需要在运行时加载的程序集中执行一个方法.现在我想在方法调用后卸载那些已加载的程序集.我知道我需要一个新的AppDomain,所以我可以卸载库.但在这里,出现了问题.
要加载的程序集是我的插件框架中的插件.他们根本没有切入点.我所知道的是它们包含一些实现给定接口的类型.旧的非AppDomain代码看起来像这样(稍微缩短):
try
{
string path = Path.GetFullPath("C:\library.dll");
AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
Assembly asm = Assembly.LoadFrom(path);
Type[] types = asm.GetExportedTypes();
foreach (Type t in types)
{
if ((t.GetInterface("IStarter") != null) && !t.IsAbstract)
{
object tempObj = Activator.CreateInstance(t);
MethodInfo info = t.GetMethod("GetParameters");
if (info != null)
{
return info.Invoke(tempObj, null) as string;
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(String.Format("Damn '{0}'.", ex.Message), "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
private Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
if (args.Name.StartsWith("MyProject.View,"))
{
string path = Path.GetFullPath("C:\view.dll"));
return …
Run Code Online (Sandbox Code Playgroud) 我在自己的数据库中有每个WordPress实例.对于更新,我需要查询所有活动插件,这些插件存储在表'wp_options'中并可通过
WHERE option_name='active_plugins'
Run Code Online (Sandbox Code Playgroud)
如何访问所有活动的插件设置(分布在多个数据库中)并将它们输出到一个SQL结果中?我知道database.tablename
语法,但是如何使用上述Where
语句继续?
单个数据库中的请求如下所示:
SELECT option_value
FROM `database`.`wp_options`
WHERE option_name="active_plugins"
Run Code Online (Sandbox Code Playgroud) 到目前为止,我已经开发了简单的swing应用程序,因此不需要将GUI代码分解为diff.类,但由于这个应用程序将非常大,我决定将代码分解为diff.类,以使代码更易于管理.
但在继续之前,我在脑海中有一些疑问如下:
GUI的简要说明
它将有一个主JFrame(MainFrame).在那里设置JPanel(MainJPanel),其布局是CardLayout.它将包含25张卡片(每张卡片都是JPanel形式,其中包含自己的摇摆组件).
Q1.我决定制作25个课程(每个课程为一个JPanel卡片).这是正确的方法吗?
Q2.如果上面的答案是正确的,那么如何编写那些卡上的按钮xxxxActionPerformed()方法的代码(25张卡),因为这些方法需要访问MainJPanel的对象
例如
public void buttonActionPerformed(ActionEvent evt) {
java.awt.CardLayout c = (java.awt.CardLayout) mainJPanel.getLayout();
c.show(mainJPanel, "card1"); // card1 is this card
mainJPanel.updateUI();
}
Run Code Online (Sandbox Code Playgroud)
我用谷歌搜索了摇摆的例子,但几乎所有这些都展示了diff的用法.摆动组件.你还可以给我一个链接,它显示一些在diff中包含GUI代码的swing示例.类.
有没有办法用using T-SQL
语句计算我的数据库中没有行的表?
在我的注册表中我有
Scan(scanner =>
{
scanner.AssemblyContainingType<EmailValidation>();
scanner.ConnectImplementationsToTypesClosing(typeof(IValidation<>));
});
Run Code Online (Sandbox Code Playgroud)
我应该做些什么来将这些全部定义为单身人士?
另外,作为这个问题的一小部分,有没有理由不将无状态的所有内容定义为在StructureMap中注册的单例对象?
我的代码看起来像这样:
thing_index = thing_list.index(thing)
otherfunction(thing_list, thing_index)
Run Code Online (Sandbox Code Playgroud)
好的,这样简化但你明白了.现在thing
可能实际上不在列表中,在这种情况下我想传递-1作为thing_index
.在其他语言中index()
,如果找不到元素,这是您期望返回的内容.事实上,它抛出了一个ValueError
.
我能做到这一点:
try:
thing_index = thing_list.index(thing)
except ValueError:
thing_index = -1
otherfunction(thing_list, thing_index)
Run Code Online (Sandbox Code Playgroud)
但这感觉很脏,而且我不知道是否ValueError
可以因为其他原因而被提出.我想出了基于生成器函数的以下解决方案,但它看起来有点复杂:
thing_index = ( [(i for i in xrange(len(thing_list)) if thing_list[i]==thing)] or [-1] )[0]
Run Code Online (Sandbox Code Playgroud)
是否有更清洁的方法来实现同样的目标?我们假设列表没有排序.
我有一个数据库表,我存储窗口的高度,宽度,状态等.作为窗口的标识符,我使用表单的完整类型名称.它运作良好,但我发现一些通用的表单会获得非常长的名称.原因是泛型类型列出了完整的汇编信息.有没有办法跳过它?
例如,常规表单的全名如下所示:
Some.Name.Space.NameOfForm
Run Code Online (Sandbox Code Playgroud)
但是通用表单的全名如下所示:
Some.Name.Space.NameOfForm`1[[Some.Other.Name.Space.GenericType, AssemblyName, Version=1.0.2.0, Cuntulre=neutral, PublicKeyToken=null]]
Run Code Online (Sandbox Code Playgroud)
为什么这么久?有没有办法可以获得更短的版本?例如:
Some.Name.Space.NameOfForm`1[[Some.Other.Name.Space.GenericType]]
Run Code Online (Sandbox Code Playgroud)
有线索吗?