c# - 如果我在 C# 中创建一个静态类,内部的任何方法是否也会被视为静态的,无论它们是否被显式声明为静态的?

标签 c# static static-methods

<分区>

Possible Duplicate:
C#.NET - Why do members of a static class need to be declared as static? Why isn't it just implicit?

我遇到了一个有趣的错误,当我从一个静态声明的类中调用一个方法(我没有明确声明为静态的)时,我收到一条消息说

An object reference is required for the non-static field, method, or property 'MangoTree.Twitter.OAuthClient.PerformRequest(System.Collections.Generic.Dictionary, string, string, string, MangoTree.Twitter.OAuthClient.RequestType)'

当我将方法显式声明为静态时,错误消失了,我可以从类声明中删除静态修饰符,错误就消失了。让我感到困惑的是,我的印象是当我将类声明为静态时,类中的所有内容也应该自动为静态,而无需我明确声明。

最佳答案

What's confusing me is that I was under the impression that when I declared the class as static, everything within the class should automatically be static as well

静态类的所有成员确实必须是静态的,但这不会自动发生:您必须显式声明所有成员都是静态的。将类声明为静态的目的是让编译器检查所​​有成员是否都是静态的,并防止任何创建静态类实例的尝试。

关于c# - 如果我在 C# 中创建一个静态类,内部的任何方法是否也会被视为静态的,无论它们是否被显式声明为静态的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11464239/

相关文章:

c# - 字符串对数组

c# - ASPNetAuthentication——在哪里可以找到 minRequiredPasswordLength

c# - 为winform应用程序添加web前端

java - 我的最终数组是如何被修改的?

java - 如何将参数从另一个类传递给非静态方法?

objective-c - Objective c 委托(delegate) self 释放

c# - 数据集值

c# - ASP.NET 中的静态方法问题

java - 为什么我们不能在静态方法中使用 'this' 关键字

c# - 从类调用寻呼