我在我的WPF应用程序中使用ToolBar.据我所知,没有简单的方法让它浮动.我只是想删除我不想显示的元素:ToolBar左侧的几个点.是否有任何属性可以自定义ToolBar的视图?或者,也许,可以重新定义工具栏模板?
我想在00:00:00将DateTime属性设置为前一天.我不知道为什么DateTime.AddDays(-1)不起作用.或者为什么DateTime.AddTicks(-1)不起作用.首先应该这样做吗?
我有2个物体.每个对象都有DateTime字段ValidFrom,ValidTo.
编辑:下班回家后,我试图获得与业务对象行为相同的行为.下面是我试图复制它看起来如何工作的代码.当然这是在家工作但不工作.好消息是我得到了很好的答案,并且+1!=)
public class RuleValue
{
public DateTime ValidFrom, ValidTo;
public RuleValue(DateTime _validFrom, DateTime _validTo)
{
ValidFrom = _validFrom;
ValidTo = _validTo;
}
// oldObject.ValidFrom = 1900-01-01
// oldObject.ValidTo = 9999-12-31
// newObject.ValidFrom = 2010-03-22
// newObject.ValidTo = 9999-12-31
public void ChangeOldDate(RuleValue oldObject, RuleValue newObject)
{
/*
* 1: When first object (oldObject) have ValidTo set to SQL-server maxdate (9999-12-12 23:59:59 etc)
* I want to allow for a new object to be created
* 2: oldObject timespan ValidFrom-ValidTo …Run Code Online (Sandbox Code Playgroud) 我正在尝试运行Java程序,但它采用默认的GMT时区而不是OS定义的时区.我的JDK版本是1.5,操作系统是Windows Server Enterprise(2007)
Windows指定了一个中央时区,但是当我运行以下程序时,它会给我一个GMT时间.
import java.util.Calendar;
public class DateTest
{
public static void main(String[] args)
{
Calendar now = Calendar.getInstance();
System.out.println(now.getTimeZone());
System.out.println(now.getTime());
}
}
Run Code Online (Sandbox Code Playgroud)
这是输出
sun.util.calendar.ZoneInfo[id="GMT",
offset=0,
dstSavings=0,
useDaylight=false,
transitions=0,
lastRule=null]
Mon Mar 22 13:46:45 GMT 2010
Run Code Online (Sandbox Code Playgroud)
请注意,我不想从应用程序设置时区.我希望JVM使用的时区应该是操作系统中指定的时区.(我没有发现其他具有1.4版JDK和Microsoft Server 2003的服务器的问题).
任何想法都将受到高度赞赏.
我试图调用另一个JAR的主要功能.现在,这个main函数包含在try和catch块下.
但是当主调用返回"NullPointerException"时,程序只是崩溃而不是捕获它.
所以,例如
try {
somelibary.main()
}
catch (Exception e) {
System.out.println("Exception Caught");
}
Run Code Online (Sandbox Code Playgroud)
此代码从main()捕获NullPointerException.有谁知道y的原因?
VS调试器给了我:
_Color = "{Name=ff000040, ARGB=(255, 0, 0, 64)}"
Run Code Online (Sandbox Code Playgroud)
我怎么能"看到"什么颜色?
我试过一个html页面:
<html>
<div style="background: rgba(255, 0, 0, 64);">________<div>
<h1 style="background-color: ff000040">hello</h1>
</html>
Run Code Online (Sandbox Code Playgroud)
不起作用.
我在这里发布的类中调用了addNotify()方法.问题是,当我在代码中调用addNotify()时,setKeys(objs)什么都不做.我的浏览器运行应用程序时没有任何内容.
但是当我调用addNotify()而没有循环(对于int ....),并且只向ArrayList添加一个项目时,它会正确地显示一个项目.
有谁知道哪里有问题?见cede
class ProjectsNode extends Children.Keys{
private ArrayList objs = new ArrayList();
public ProjectsNode() {
}
@Override
protected Node[] createNodes(Object o) {
MainProject obj = (MainProject) o;
AbstractNode result = new AbstractNode (new DiagramsNode(), Lookups.singleton(obj));
result.setDisplayName (obj.getName());
return new Node[] { result };
}
@Override
protected void addNotify() {
//this loop causes nothing appears in my explorer.
//but when I replace this loop by single line "objs.add(new MainProject("project1000"));", it shows that one item in explorer
for (int i=0;i==10;i++){ …Run Code Online (Sandbox Code Playgroud) 我有这个代码
try
{
//AN EXCEPTION IS GENERATED HERE!!!
}
catch
{
SqlService.RollbackTransaction();
throw;
}
上面的代码在此代码中调用
try
{
//HERE IS CALLED THE METHOD THAT CONTAINS THE CODE ABOVE
}
catch (Exception ex)
{
HandleException(ex);
}
作为参数传递给方法"HandleException"的异常包含堆栈跟踪中"throw"行的行号,而不是生成异常的实际行.任何人都知道为什么会发生这种情况?
编辑1 好的,谢谢大家的答案.我更改了内部捕获
catch(Exception ex)
{
SqlService.RollbackTransaction();
throw new Exception("Enrollment error", ex);
}
现在我在堆栈跟踪上有正确的行,但我不得不创建一个新的异常.我希望找到更好的解决方案:-(
EDIT2 也许(如果你有5分钟)你可以尝试这种情况,以检查你是否得到相同的结果,而不是很复杂的重新创建.
我如何从IDE 运行TestCase?
我用一个简单的形式创建了一个新项目:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
private
public
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
end.
Run Code Online (Sandbox Code Playgroud)
现在我将添加一个测试用例来检查推送Button1是否应该完成:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
uses
TestFramework;
type
TForm1Tests = class(TTestCase)
private
f: TForm1;
protected
procedure SetUp; override;
procedure …Run Code Online (Sandbox Code Playgroud) 例:
#include <iostream>
using namespace std;
int main()
{
wchar_t en[] = L"Hello";
wchar_t ru[] = L"??????"; //Russian language
cout << ru
<< endl
<< en;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
此代码仅打印像地址一样的十六进制值.如何打印wchar_t字符串?
我知道有3种不同的绑定上下文或加载上下文:
Load
LoadFrom
LoadNeither
Run Code Online (Sandbox Code Playgroud)
提前致谢...
---------------以下是我最近发现的一些有用的引文--------------------
理解上下文
没有解决加载器上下文及其存在的原因,没有关于Binder的文章是完整的.装载机环境通常是混乱的根源.将加载器上下文视为包含程序集的应用程序域中的逻辑存储区.根据程序集的加载方式,它们属于三个加载器上下文之一.
加载上下文简单地说,使用Assembly.Load加载的GAC,ApplicationBase或ApplicationBase下的PrivateBinPath中存在的所有程序集都将加载到Load上下文中.使用AssemblyResolve事件解析的程序集也属于此类别.
LoadFrom上下文如果您尝试通过提供ApplicationBase外部的特定路径来加载程序集,并且在Load上下文中找不到程序集,则会在LoadFrom上下文中加载程序集.
两个上下文如果您尝试使用Assembly.LoadFile(),Assembly.Load(byte [])或Reflection.Emit加载程序集,那些程序集将加载到Neither上下文中.
在将程序集加载到LoadFrom上下文中的情况下,Binder首先检查Load上下文中是否已存在确切的程序集(相同的标识和位置).如果是,它将丢弃LoadFrom上下文中的程序集信息,并使用Load上下文中的程序集信息.在确定它是否是同一个组件时,位置信息很重要,我们将很快介绍.在.NET Framework 1.1中,这被称为LoadFrom的第二个绑定,因为Binder用于执行两个步骤 - 首先将程序集放在LoadFrom上下文中,然后在它找到匹配的程序集标识时将其提升到Load上下文.加载上下文中的位置.
确保尽可能将程序集加载到Load上下文中.为此,程序集应该可以从AppDomain的GAC,ApplicationBase或PrivateBinPath中找到.加载到此上下文中的程序集会自动获得NGen的好处,并自动获取此上下文中存在的程序集依赖项.
将程序集加载到LoadFrom上下文中有其自身的优点 - 它允许通过指定其路径来加载ApplicationBase外部的多个程序集.
现在,让我们谈谈组件的位置,同时确定通过LoadFrom()加载的组件是否与通过Load()加载的组件相同.即使两个程序集中的类型相同,如果两个程序集是从不同的路径加载的,就加载器上下文而言,它们也不被认为是相同的.这导致在同一应用程序域中重复加载相同程序集但在不同上下文(Load和LoadFrom)中加载相同程序集的情况,并且在LoadFrom上下文中不允许在Load上下文中的程序集中的类型(就装配身份而言,即使它们是相同的组件也是如此).这是LoadFrom的缺点之一.此外,LoadFrom上下文中的程序集不会自动获得NGen的好处.
对于Neither上下文,除非应用程序订阅AssemblyResolve事件,否则不能绑定此上下文中的程序集.通常应该避免这种情况.
那么为什么CLR首先会有加载器上下文呢?Loader上下文有助于确保加载程序集时的加载顺序独立性.此外,它们还可以在程序集加载到不同的上下文时提供对程序集及其依赖项的隔离度量.
- 从了解CLR活页夹