Xin lỗi vì tính chất không được học hỏi của câu hỏi này. Nếu có một câu trả lời đơn giản, chỉ cần một liên kết đến một lời giải thích sẽ khiến tôi hạnh phúc hơn.Tại sao các phương pháp tĩnh cần được đưa vào lớp học?
Sau 6 tháng lập trình, tôi thấy các lớp tĩnh có phần hữu ích để lưu trữ các thường trình áp dụng cho nhiều lớp khác nhau. Dưới đây là một ví dụ đơn giản về cách tôi sử dụng lớp tĩnh, đó là một lớp cho phân tích văn bản vào những việc khác nhau
public static class TextProcessor
{
public static string[] GetWords(string sentence)
{
return sentence.Split(' ');
}
public static int CountLetters(string sentence)
{
return sentence.Length;
}
public static int CountWords(string sentence)
{
return GetWords(sentence).Length;
}
}
Và tôi sử dụng này theo những cách hiển nhiên như
class Program
{
static void Main(string[] args)
{
string mysentence = "hello there stackoverflow.";
Console.WriteLine("mysentence has {0} words in it, fascinating huh??", TextProcessor.CountWords(mysentence));
Console.ReadLine();
}
}
Câu hỏi của tôi là: Tại sao nó cần thiết để bọc các phương thức tĩnh này trong một lớp tĩnh? Dường như không phục vụ mục đích nào. Có cách nào tôi có thể có những phương pháp này trên của riêng mình không được bọc trong một lớp học? Tôi biết đóng gói là có lợi nhưng tôi không nhìn thấy việc sử dụng cho các phương pháp tĩnh bọc trong lớp tĩnh. Có điều gì đó tôi thiếu phong cách hay không? Tôi hoàn toàn sủa một cái cây ngớ ngẩn? Tôi có nghĩ quá nhiều không?
Câu hỏi hay, nhưng tôi nghi ngờ nó chỉ là một nhàm chán "bởi vì Java đã làm nó." – Jacob
Cuối cùng nó tóm tắt cách ngôn ngữ được thiết kế như thế nào. Tất cả các phương pháp phải ở trong một lớp học. Tại sao? Có lẽ vì mục đích nhất quán. –
việc kiểm tra này [bài] [1] [1]: http://stackoverflow.com/questions/7933540/c-sharp-static-class-why-use – xgencoder