关键字是 C# 编译器预定义的保留字。这些关键字不能用作标识符,但是,如果您想使用这些关键字作为标识符,可以在关键字前面加上 @ 字符作为前缀。
-
class:
public class MyClass {// Class definition }
-
interface:
public interface IMyInterface {void MyMethod(); }
-
public:
public class MyClass {public int MyProperty { get; set; } }
-
private:
public class MyClass {private int myPrivateField; }
-
protected:
public class MyBaseClass {protected int MyProtectedField; }
-
internal:
internal class MyInternalClass {// Internal class accessible within the same assembly }
-
static:
public static class MyStaticClass {public static void MyStaticMethod(){// Static method} }
-
void:
public class MyClass {public void MyMethod(){// Method that returns void} }
-
new:
public class MyBaseClass {public virtual void MyMethod(){// Base method} }public class MyDerivedClass : MyBaseClass {public new void MyMethod(){// Hides base class method with new implementation} }
-
virtual, override:
public class MyBaseClass {public virtual void MyMethod(){// Virtual method} }public class MyDerivedClass : MyBaseClass {public override void MyMethod(){// Overrides base class method} }
-
abstract:
public abstract class MyAbstractClass {public abstract void MyAbstractMethod(); }
-
this:
public class MyClass {private int value;public void SetValue(int value){this.value = value; // 'this' refers to the current instance of MyClass} }
-
base:
public class MyBaseClass {protected int baseValue;public MyBaseClass(int value){baseValue = value;} }public class MyDerivedClass : MyBaseClass {public MyDerivedClass(int derivedValue) : base(derivedValue){// Calls base class constructor with 'derivedValue'} }
-
readonly, const:
public class MyClass {public const int MyConstant = 10;public readonly int MyReadOnlyField;public MyClass(int value){MyReadOnlyField = value; // Readonly field can be initialized in constructor} }
-
delegate:
public delegate void MyDelegate(string message);public class MyClass {public void MyMethod(string message){Console.WriteLine(message);} }// Usage of delegate: // MyDelegate handler = new MyDelegate(new MyClass().MyMethod);
-
event:
public class MyClass {public event EventHandler MyEvent;public void RaiseEvent(){MyEvent?.Invoke(this, EventArgs.Empty);} }
-
try, catch, finally:
try {// Code that may throw exceptions } catch (Exception ex) {// Handle exceptions } finally {// Code that always runs, whether an exception occurred or not }
-
if, else, switch, case:
int x = 10;if (x > 5) {Console.WriteLine("x is greater than 5"); } else {Console.WriteLine("x is less than or equal to 5"); }switch (x) {case 5:Console.WriteLine("x is 5");break;default:Console.WriteLine("x is not 5");break; }
-
for, while, do:
for (int i = 0; i < 5; i++) {Console.WriteLine(i); }int j = 0; while (j < 5) {Console.WriteLine(j);j++; }int k = 0; do {Console.WriteLine(k);k++; } while (k < 5);
-
foreach:
int[] numbers = { 1, 2, 3, 4, 5 };foreach (int num in numbers) {Console.WriteLine(num); }
-
lock:
private object lockObject = new object();public void AccessSharedResource() {lock (lockObject){// Code inside this block is thread-safe} }
-
using:
using (var resource = new DisposableResource()) {// Use 'resource' here }
-
async, await:
public async Task<int> GetValueAsync() {await Task.Delay(1000); // Simulates an async operationreturn 10; }// Example of usage: // int result = await GetValueAsync();
-
get, set:
public class MyClass {private int myProperty;public int MyProperty{get { return myProperty; }set { myProperty = value; }} }