任何想法为什么以下代码不退出通过COM互操作创建的Outlook 2007进程?
Microsoft.Office.Interop.Outlook.Application app = new Microsoft.Office.Interop.Outlook.Application();
var item = app.Session.OpenSharedItem("C:\\test.msg") as Microsoft.Office.Interop.Outlook.MailItem;
string body = item.HTMLBody;
int att = item.Attachments.Count;
(item as Microsoft.Office.Interop.Outlook._MailItem).Close(Microsoft.Office.Interop.Outlook.OlInspectorClose.olDiscard);
System.Runtime.InteropServices.Marshal.ReleaseComObject(item);
(app as Microsoft.Office.Interop.Outlook._Application).Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(app);
System.Diagnostics.Debugger.Break();
Run Code Online (Sandbox Code Playgroud)
一个几乎相同的使用Word的片段工作,所以我想知道我是否忘记清理一些东西......
有没有更好的标准方法在Java中创建getter和setter?
必须为每个变量明确定义getter和setter是非常冗长的.是否有更好的标准注释方法?
Spring有这样的东西吗?
甚至C#都有属性.
在Java虚拟机规范说有布尔有限的支持原始类型.
没有专门针对布尔值操作的Java虚拟机指令.相反,Java编程语言中对布尔值进行操作的表达式被编译为使用Java虚拟机int数据类型的值.
以上暗示(虽然我可能误解了它)在操作布尔值时使用int数据类型,但这是一个32位内存构造.假设布尔值仅代表1位信息:
在我生命中读过的所有源代码中,我从未见过这样做过.如果它被认为是糟糕的编程实践,那么我必须理解它无法理解的原因.此外,我认为它有时会提高可读性而不是恶化它.以下是我在ruby代码中完成的几个地方.
@pushButton.connect(SIGNAL :clicked) do (@select_file ||= Qt::FileDialog.new).show end
Run Code Online (Sandbox Code Playgroud)
和
(tmr=Qt::Timer.new).connect SIGNAL :timeout do
@label.text = Qt::Application.translate("MainWindow", "The time right now is #{Time.now}", nil, Qt::Application::UnicodeUTF8)
end
tmr.start(1000)
Run Code Online (Sandbox Code Playgroud) 关于MySQL中外键的初学者问题.
在w3school它说,
一个表中的FOREIGN KEY指向另一个表中的PRIMARY KEY.
而且还有WHERE,
WHERE id = page_id
Run Code Online (Sandbox Code Playgroud)
因此,如果我可以使用WHERE来链接表,那么拥有外键的主要目的是什么?
在SQL(MSSQL,Oracle等等)中,在连接表时,将过滤器添加到JOIN语句而不是在WHERE子句中有什么好处?
即
SELECT * FROM X INNER JOIN Y ON X.A = Y.A WHERE X.B = 'SOMETHING'
Run Code Online (Sandbox Code Playgroud)
与
SELECT * FROM X INNER JOIN Y ON X.A = Y.A AND X.B = 'SOMETHING'
Run Code Online (Sandbox Code Playgroud)
我意识到这并不适用于所有情况,但我注意到在某些情况下,通过将过滤条件放在JOIN语句中似乎可以获得性能提升.但是,因为它是JOIN语句的一部分,所以它也会使它表现得有些奇怪.
思考?
以下问题,我想在Oracle中创建一个视图,计算"利用率百分比".
AS SELECT
sw.SWITCH_ID,
sw.ASSET_ID,
sw.SYSTEMNAME,
sw.MAX_INSTALLABLE_PORTS,
sw.INSTALLED_PORTS,
sw.USED_PORTS,
(sw.INSTALLED_PORTS/sw.MAX_INSTALLABLE_PORTS)*100 AS UTIL_INSTALLED_PORTS,
sw.RES_INFRASTRUCTURE_PORTS,
sw.USED_INFRASTRUCTURE_PORTS,
sw.FREE_INFRASTRUCTURE_PORTS,
(sw.INSTALLED_PORTS/sw.MAX_INSTALLABLE_PORTS)*100 AS UTIL_INFRASTRUCTURE_PORTS,
sw.RESERVED_DEVICE_PORTS,
sw.USED_DEVICE_PORTS,
sw.FREE_DEVICE_PORTS,
(sw.FREE_DEVICE_PORTS/sw.RESERVED_DEVICE_PORTS)*100 AS UTIL_DEVICE_PORTS,
sw.RUN_DATE
Run Code Online (Sandbox Code Playgroud)
问题:有时sw.INSTALLED_PORTS或sw.MAX_INSTALLABLE_PORTS可以为NULL(对于其他UTIL行也是如此).
有什么好方法可以做以下事情:
if (sw.INSTALLED_PORTS or sw.MAX_INSTALLABLE_PORTS == null)
UTIL_INSTALLABLE_PORTS = null
else (sw.INSTALLED_PORTS/sw.MAX_INSTALLABLE_PORTS)*100 AS UTIL_INSTALLABLE_PORTS,
Run Code Online (Sandbox Code Playgroud) Oracle背景中的某些人使用DECIMAL(31,0)作为整数的原因是什么.在MySQL中它效率不高.
我在不同的机器上有土耳其特殊字符的问题.以下代码:
String turkish = "?ü?ç?Ü?Ç?";
String test1 = new String(turkish.getBytes());
String test2 = new String(turkish.getBytes("UTF-8"));
String test3 = new String(turkish.getBytes("UTF-8"), "UTF-8");
System.out.println(test1);
System.out.println(test2);
System.out.println(test3);
Run Code Online (Sandbox Code Playgroud)
在Mac上,三个字符串与原始字符串相同.在Windows机器上,三行是(使用Netbeans 6.7控制台打印):
?ü?ç?Ü?Ç?
ğüşçĞÜŞÇı
?ü?ç?Ü?Ç?
Run Code Online (Sandbox Code Playgroud)
我没有遇到问题.