为什么使用Word定义一个这样的变量:
Dim Word As Microsoft.Office.Interop.Word._Application
Run Code Online (Sandbox Code Playgroud)
要么
Microsoft.Office.Interop.Word._Application Word;
Run Code Online (Sandbox Code Playgroud)
然后像这样设置:
Word = New Microsoft.Office.Interop.Word.Application
Run Code Online (Sandbox Code Playgroud)
要么
Word = new Microsoft.Office.Interop.Word.Application();
Run Code Online (Sandbox Code Playgroud)
什么是Application和_Application之间的区别
我怀疑一个人可能是一个班级而另一个人是一个界面,或者一个人可能是公开的而另一个是私人的,但这对我来说仍然没有意义.
我希望有人可以向我解释.细节越多越好.
我的 VB 应用程序中的Option Strict已关闭,因此我现在已将其打开。我现在有一些错误,我不确定如何修复:
pnlWait.Top = (Height - pnlWait.Height) / 2
Run Code Online (Sandbox Code Playgroud)
在 C# 中,我会这样做:
pnlWait.Top = (int)(Height - pnlWait.Height) / 2;
Run Code Online (Sandbox Code Playgroud)
但这在VB中不起作用。我试过了,Decimal.ToInt32但后来它抱怨,因为它正在创建一个Double与部门,没有Double.ToInt32. Interger.Parse需要一个String,所以这不会有任何好处。
pnlWait.Top = Integer.Parse(((Height - pnlWait.Height) / 2).ToString) 'Yeah, right!
Run Code Online (Sandbox Code Playgroud)
这让我觉得CType或者DirectCast可能很好,但是这些方法适用于许多对象,所以我认为它们效率不高。
假设我在表单上有两个按钮.如果第一个按钮被隐藏(可见=假)我宁愿第二个按钮移动.
在VB中我可以做一个简洁的任务:
Button2.Left = 22 - (90 * Button1.Visible)
Run Code Online (Sandbox Code Playgroud)
但这在C#中不起作用.我能弄清楚的唯一方法是使代码比VB更加冗长(我认为这不可能),同时使其不易读取:
button2.Left = 22 - (90 * Convert.ToInt32(button1.Visible));
Run Code Online (Sandbox Code Playgroud)
这个方便的shorcut(在赋值中使用布尔值以避免使用if)已存在数十年.Micorsoft是用C#杀了它还是有办法在没有添加函数调用之类的情况下仍然使用它?