cuốn sách gpt4 ai đã làm

c# - Hướng dẫn sử dụng giao diện (phối cảnh C#)

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 20:18:35 27 4
mua khóa gpt4 Nike

Tôi đã làm việc với C# và .NET được một thời gian và mặc dù trước đây tôi đã từng làm việc với các ngôn ngữ OOP (chính xác hơn là Java), nhưng khi làm việc trên các ứng dụng .NET tôi thấy rằng các giao diện được sử dụng rất nhiều. khác với những gì tôi thấy trong java Pass. Tôi không có nhiều kinh nghiệm nên tôi không nói rằng giao diện được sử dụng nhiều hơn trong .NET, nhưng bây giờ tôi cảm thấy cần phải hiểu sâu hơn về giao diện và lợi ích của việc mọi người sử dụng chúng thường xuyên hơn.

Tôi có một số nội dung trên internet và một số nội dung ở đây và lời giải thích hợp lý nhất đối với tôi là - Làm sao tôi biết khi nào nên tạo giao diện? .

Đây là vấn đề của tôi. Tôi hoàn toàn không mong đợi một lời giải thích kỳ diệu nào đó về giao diện vì tôi đã đọc đủ để thấy rằng không hề có thứ đó. Tôi đã hy vọng rằng sự hiểu biết sẽ đến một cách tự nhiên nhờ kinh nghiệm và mã hóa, vì vậy tôi quyết định thử sử dụng những lợi ích của ví dụ được chỉ ra trong câu trả lời được chấp nhận trong liên kết. Tôi cũng sao chép-dán nó ở đây:

Bạn có 4 loại khác nhau a, b, c, d. Trong mã của bạn, bạn có một cái gì đó như thế này:

a.Process();
b.Process();
c.Process();
d.Process();

Tại sao không để họ làm điều đó xảy racó thể xử lý được, rồi thực hiện

Danh sách danh sách;

foreach(IProcessable p trong danh sách)
p.Process();

Tỷ lệ này sẽ tốt hơn khi bạn thêm 50 loại lớp, tất cả đều làm những việc giống nhau.

Vấn đề là tôi dường như không hiểu được điều này. Sau khi đọc xong, tôi mở Visual Studio 2010 và cố gắng tạo lại một ví dụ như thế này - Tôi đã tạo một dự án và tạo bốn lớp - Một,b,c ,d. Tất cả các lớp này đều giống nhau:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

không gian tên ConsoleApplication1
{
lớp a:ITest
{
Kiểm tra khoảng trống công khai()
{
System.Console.WriteLine("Xin chào từ a");
}
}
}

Chỉ có 4 tên khác nhau và cách in tên Bài kiểm tra(). Đây là giao diện:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

không gian tên ConsoleApplication1
{
giao diện ITest
{
Kiểm tra khoảng trống công khai();
}
}

Theo tôi ở Chương trình.cs Theo cách hiểu, tôi có điều này:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

không gian tên ConsoleApplication1
{
class Program
{
Danh sách danh sách;
static void Main(string[] args)
{
foreach (ITest p trong danh sách)
p.Test();
}
}
}

Ừm. Có vẻ như tôi thực sự đã phạm sai lầm. Tôi nghĩ rằng bằng cách triển khai cùng một giao diện, tôi có thể tự động lấy danh sách tất cả các lớp và sử dụng chúng, như ở trên Chủ yếu() trong phương pháp. Nhưng tôi nhận được lỗi sau:

Cần phải có tham chiếu đối tượng cho trường, phương thức hoặc thuộc tính không tĩnh

Chà, ai đó có thể hạ cấp độ cho tôi và giải thích cho tôi dựa trên ví dụ này về cách tôi có thể nhận được lợi ích như vậy bằng cách sử dụng giao diện.

câu trả lời hay nhất

Vấn đề ở đây không liên quan gì đến giao diện mà là vớiChương trìnhliên quan đến thể loại. Cánh đồng danh sách là một thành viên thể hiện và phương thức Chủ yếu là tĩnh. Như ngoại lệ nói, bạn không thể tham chiếu các thành viên không tĩnh từ các phương thức tĩnh.

此外,danh sách Nó không bao giờ được khởi tạo hoặc khởi tạo (ít nhất là không có trong đoạn mã bạn đã đăng). Vì vậy, ngay cả danh sách Nếu được khai báo tĩnh, mã của bạn cũng sẽ tạo ra NullReferenceNgoại lệ.

Hãy thử thêm của bạn Chương trình Lớp được thay đổi thành:

class Program
{
Danh sách tĩnh danh sách;
static void Main(string[] args)
{
list = Danh sách mới();
// ...
// khởi tạo danh sách
// ...

foreach (ITest p trong danh sách)
p.Test();
}
}

Về c# - Hướng dẫn sử dụng giao diện (phối cảnh C#), chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/15097570/

27 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress