gpt4 book ai didi

c# - VB.NET 命名空间缩写 : How do I make this work in equivalent C# code?

转载 作者:行者123 更新时间:2023-11-30 21:09:08 25 4
gpt4 key购买 nike

我天生就是一名 VB.NET 程序员,我很难弄清楚这一点。如有任何帮助,我们将不胜感激。

我需要让下面的 C# 代码 (1) 工作。等效的 VB.NET 工作得很好,但 C# 没有。

请注意,(2) 和 (3) 都有效,但这实际上是自动生成的代码,我需要 VB.NET 和 C# 版本尽可能相似。

  1. 这不会编译(Engine 的完全限定名称是 ThreeD.QVB.Engine):

    using ThreeD.QVB;

    namespace QVBScript
    {
    public class ScriptCode
    {
    public void Main(ref Engine.QVBObjectsDictionary objects,
    Engine.Commands commands)
    {

  2. 但是,这确实有效:

    //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)
    {

  3. 这也有效:

    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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com