- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
",t};e.buildCustomizationMenuUi=t;function n(e){let t='
",t}function s(e){let n=e.filter.currentValue||e.filter.defaultValue,t='${e.filter.label}
`,e.filter.options.forEach(s=>{let o=s.id===n;t+=``}),t+="${e.filter.label}
`,t+=`ID: csharp-best-practices/static-class
Language: C#
Severity: Notice
Category: Best Practices
This rule states that a class should be declared as static
if it only contains static
members. Declaring a class as static
indicates that it cannot be instantiated or extended and that all its members are static
. This provides a clear signal to other developers that this class is not meant to be used as an object.
The rule detects if all members are static . If they are, the rule recommends to declare the class static.
Declare the class static by adding the static
keyword to its declaration.
// all attributes are static, the class should be static
public class Foo
{
private static string _f;
public static void Bar()
{
}
}
public class FooBar
{
private static readonly IList<MyObject> LargeCollection;
FooBar()
{
string json = System.IO.File.ReadAllText(TestFixtureBase.ResolvePath("large.json"));
LargeCollection = JsonConvert.DeserializeObject<IList<RootObject>>(json);
}
public static void Plop()
{
}
}
public class StaticTestClass
{
[JsonProperty]
public int x = 1;
[JsonProperty]
public static int y = 2;
[JsonProperty]
public static int z { get; set; }
static StaticTestClass()
{
z = 3;
}
}
public class Foo
{
bool somethingAttribute;
private static string _f;
public static void Bar()
{
}
}
public class FooBar
{
private static readonly IList<MyObject> LargeCollection;
FooBar()
{
string json = System.IO.File.ReadAllText(TestFixtureBase.ResolvePath("large.json"));
LargeCollection = JsonConvert.DeserializeObject<IList<RootObject>>(json);
}
public void Plop()
{
}
}
public class NoConstructorReadOnlyCollection<T> : ReadOnlyCollection<T>
{
public NoConstructorReadOnlyCollection() : base(new List<T>())
{
}
}
// has non-static properties
public class Foo
{
public bool SomeAttributes { get; set; }
private static string _f;
public static void Bar()
{
}
}
// not static recommended because one attribute is not static
public class Foo
{
private static string _f;
public void Bar()
{
}
}
public static class Foo
{
private static string _f;
public static void Bar()
{
}
}
class Cat : Animal
{
public Cat(string name)
: base(name)
{
}
}