假设我有一个简单的课程
public class Person
{
public string Name { get; set; }
private int _age;
public int Age
{
get { return _age; }
set
{
if(value < 0 || value > 150)
throw new ValidationException("Person age is incorrect");
_age = value;
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后我想为这个类设置一个绑定:
txtAge.DataBindings.Add("Text", dataSource, "Name");
Run Code Online (Sandbox Code Playgroud)
现在,如果我在文本框中输入了不正确的年龄值(比如说200),那么设置器中的异常将被吞下,在我更正文本框中的值之前,我将无法执行任何操作.我的意思是文本框无法放松焦点.这一切都是沉默的 - 没有错误 - 你只是不能做任何事情(甚至关闭表格或整个应用程序),直到你纠正价值.
这似乎是一个错误,但问题是:这是一个解决方法是什么?
我在Word 2003中有一个相当简单的VBA,它将文档的字体更改为"eco font"(长篇故事),然后打开"打印"对话框.
当用户点击"取消"或"确定"时,代码会执行"撤消"以还原更改.
问题是,有时当我按"确定"打印文档时,需要撤消两个操作('字体更改'和'更新字段').我似乎无法预测何时会发生这种情况.
有没有办法读取Word的撤消缓冲区中的最后一项?这样我就可以继续按下撤消,直到字体更改完成.
编辑: 最终代码(缩减):
ActiveDocument.Range.Bookmarks.Add ("_tempEcoUndoStart_")
ActiveDocument.Content.Font.Name = "Nanonymus Eco Sans"
Dialogs(wdDialogFilePrint).Show
While ActiveDocument.Bookmarks.Exists("_tempEcoUndoStart_")
ActiveDocument.Undo
Wend
Run Code Online (Sandbox Code Playgroud) 我有一个使用XML和反射的Object类将s 返回到另一个类.
通常这些对象是外部对象的子字段,但偶尔它是我想要动态生成的东西.我尝试过类似的东西,但无济于事.我相信这是因为Java不允许您访问private反射方法.
Element node = outerNode.item(0);
String methodName = node.getAttribute("method");
String objectName = node.getAttribute("object");
if ("SomeObject".equals(objectName))
object = someObject;
else
object = this;
method = object.getClass().getMethod(methodName, (Class[]) null);
Run Code Online (Sandbox Code Playgroud)
如果提供的方法是private,它失败了NoSuchMethodException.我可以通过制作方法public或使另一个类从中派生它来解决它.
长话短说,我只是想知道是否有办法private通过反射访问方法.
您是否可以重新编写一本关于C#的单元测试和TDD的书籍,至少对Mock Objects有一些处理?
我已经看到了这个问题,但它似乎没有提到嘲笑.
是否可以为Reporting Services创建自定义第三方?
Dundas图表控件就是这方面的一个例子,但我不确定这些控件是否内部内置于SSRS中.
在我看来,关于静态/强类型编程语言最有价值的是它有助于重构:如果/当你更改任何API时,编译器会告诉你这个更改已经破坏了什么.
我可以想象用运行时/弱类型语言编写代码......但是如果没有编译器的帮助我无法想象重构,我无法想象在没有重构的情况下编写成千上万行代码.
这是真的?
我收到编译器错误D8045.无法使用/ clr选项编译C文件'serialcommands.c'.
此文件是一个C库,已编写为通过串行端口与TI处理器通信.我需要做的任务是用CLR包装器包装这个库(如果你想从CLI问题中获得一些更简单的点,那么会有关于堆栈溢出的其他问题,这些问题涉及来回编组数据.)
我只是想从我的CLR包装器中使用这个C库.我去了Properties-> Configuration Properties-> C/C++ - > General-> Compile with Common Language runtime support = No Common Language Runtime支持
这是正确的方法吗?我以后会遇到令人讨厌的奇怪错误,还是我需要做的其他事情才能使用它?
我想设置log4j,以便从com.foo.bar包下的类生成的所有日志消息转到bar.log,并且从com.bar.blatz包下的类生成的所有log meessage都转到blatz.log.
我有一个像这样的查询:
SELECT
title, desc, date
FROM
tablename
ORDER BY
date ASC, title ASC;
Run Code Online (Sandbox Code Playgroud)
当数据实际有日期时工作正常.问题是,日期提交是可选的,所以我有时会将稿件作为日期,这会产生令人遗憾的效果,即将所有未提交的行放在最前面.
所以,我接着尝试了这个:
SELECT
title, desc, date
FROM
tablename
ORDER BY
date DESC, title ASC;
Run Code Online (Sandbox Code Playgroud)
哪种工作,但不是真的 - 所有带日期(非0000-00-00)的项目都按降序列出,然后是所有带有0000-00-00的项目.
我想做的是按日期排序ASC,标题ASC,但只有日期!= 0000-00-00,但如果日期是= 0000-00-00,那么只是ORDER BY标题ASC那些(我想我解释正确).
我能想到的唯一方法是基于非SQL(两个查询,或者,每个查询只填充一个内存数组,然后我使用PHP排序).
是否有可以执行此操作的SQL查询?