【问题标题】:what is the real meaning of 'void' in C#? [duplicate]C#中'void'的真正含义是什么? [复制]
【发布时间】:2013-06-28 13:20:09
【问题描述】:

我正在查看 C# 中 void 类型的定义。它是一个空结构,表示无值。

但是,这种结构与其他结构之间究竟有什么区别。我的意思是如果你定义一个返回类型为 void 的方法然后你 return typeOf(void) 你会得到一个错误。

似乎 C# 对这种类型有不同的行为。

有一些关于void 的真正含义的文档。我的意思是引擎盖下发生了什么。值类型结构怎么能不引用任何东西?

更新:

我认为你们中的一些人没有明白这个问题的重点,这就是为什么您将其标记为重复。我的问题是。虚空是一种结构。好的 ? .. 结构是值类型。 在可能的最低阶段会发生什么?内存中的 void 代表什么?这个结构和其他结构有什么区别,如果你在 void 上按 F12,你只会看到一个空结构? c# 的区别在哪里?

【问题讨论】:

标签: c# null structure void return-type


【解决方案1】:

关键是返回类型为void 的方法不会返回任何东西。它不返回void 类型的值;它根本没有返回值。

您不能声明该类型的方法;您不能将参数声明为 void... 它表示根本没有任何值。 System.Void 类型实际上只是为了促进反射而存在,其中 MethodInfo.ReturnType 之类的东西需要表明方法不返回任何内容。

如果void 是一个真正的类型,它会在很多方面发挥作用,就像Unit 在F# 中一样。例如,我们可以只使用Task<T> 而不是Task<T> 和Task...实际上Task 是Task<void>,但这是无效的...

【讨论】:

  • 当我回到我的电脑时我可能会尝试这个.. 但是void 指针在不安全的 C# 中工作吗?
  • @SimonWhitehead:我认为 void 指针最终意味着一些不同的东西。我自己尽量避免使用指针 :)(但是是的,它们有效。)
【解决方案2】:

有些语言有两种不同形式的子程序。程序和功能。不同之处在于过程是一系列操作。函数是带有 return 语句的操作。

在 C# 中,一切都是“函数”,因此 void 关键字只是表明它实际上不是函数,因为它没有返回语句。

【讨论】:

    【解决方案3】:

    实际上是fairlywelldocumented。这是type theory 中的一个基本概念,与unit type 相关。

    事实上你可以使用typeof(void),虽然你可以用它做的不多。原因

    public void foo() { return typeof(void); } 
    

    不起作用是因为typeof(void) 的结果不是void 类型的实例,而是Type 类型的实例。写这个的正确方法是简单的

    public void foo() { return; } 
    

    【讨论】:

      【解决方案4】:

      当用作方法的返回类型时,void 指定 方法不返回值。

      http://msdn.microsoft.com/en-us/library/yah0tteb(v=vs.110).aspx

      【讨论】:

        【解决方案5】:

        Void 这个词的意思是没有。如果一个值是无效的,则意味着它没有值。在方法或函数中,这意味着它没有返回类型,因此您的函数不必返回任何内容才能运行

        public static void TestRefType()
        {
        SampleRefType rt = new SampleRefType();
        rt.value = 44;
        ModifyObject(rt);
        System.Console.WriteLine(rt.value);
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-03-18
          • 1970-01-01
          • 2012-05-18
          • 2013-02-02
          • 1970-01-01
          • 2017-05-06
          • 2012-03-30
          相关资源
          最近更新 更多