作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我天生就是一名 VB.NET 程序员,我很难弄清楚这一点。如有任何帮助,我们将不胜感激。
我需要让下面的 C# 代码 (1) 工作。等效的 VB.NET 工作得很好,但 C# 没有。
请注意,(2) 和 (3) 都有效,但这实际上是自动生成的代码,我需要 VB.NET 和 C# 版本尽可能相似。
这不会编译(Engine
的完全限定名称是 ThreeD.QVB.Engine
):
using ThreeD.QVB;
namespace QVBScript
{
public class ScriptCode
{
public void Main(ref Engine.QVBObjectsDictionary objects,
Engine.Commands commands)
{
…
但是,这确实有效:
//using ThreeD.QVB; // I'm instead using fully-qualified names in the method
namespace QVBScript
{
public class ScriptCode
{
public void Main(ref ThreeD.QVB.Engine.QVBObjectsDictionary objects,
ThreeD.QVB.Engine.Commands commands)
{
…
这也有效:
using eng = ThreeD.QVB.Engine;
namespace QVBScript
{
public class ScriptCode
{
public void Main(ref eng.QVBObjectsDictionary objects,
eng.Commands commands)
{
…
最佳答案
在 VB.NET 中,如果您对命名空间的第一部分有一个 import
,您可以仅引用后半部分。在 C# 中,您不能这样做。您必须对完整的命名空间使用 using
,或者完全限定您的类型名称。不同的语言,不同的规则。
在您的最后一个示例中,您不需要使用别名。
using ThreeD.QVB.Engine;
namespace QVBScript
{
public class ScriptCode
{
public void Main(ref QVBObjectsDictionary objects, Commands commands)
{
UI.Output Output = (UI.Output)objects["Output"];
关于c# - VB.NET 命名空间缩写 : How do I make this work in equivalent C# code?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9200231/
我是一名优秀的程序员,十分优秀!