- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
所以,我正在尝试建立这样的父/子类关系:
class ParentClass where C : ChildClass
{
public void AddChild(C child)
{
child.SetParent(this); //Argument 1: cannot convert from 'ParentClass' to 'ParentClass<>,T>'
}
}
class ChildClass
{
ParentClass<>, T> myParent;
public void SetParent(ParentClass<>, T> parent)
{
myParent = parent;
}
}
但是,这是一个编译错误。因此,我的第二个想法是使用 Ở đâu
tuyên bố SetParent
方法。但问题是我不知道将 myParent
声明为什么类型(我知道类型,我只是不知道如何声明它。)
class ParentClass where C : ChildClass
{
public void AddChild(C child)
{
child.SetParent(this);
}
}
class ChildClass
{
var myParent; //What should I declare this as?
public void SetParent(ParentClass parent) where K : ChildClass
{
myParent = parent;
}
}
câu trả lời hay nhất
这似乎是可以编译的,尽管它相当笨拙:
class ParentClass where C : ChildClass
{
public void AddChild(C child)
{
child.SetParent(this);
}
}
class ChildClass where C : ChildClass
{
ParentClass myParent;
public void SetParent(ParentClass parent)
{
myParent = parent;
}
}
此解决方案使用递归绑定(bind)类型参数,近似“ self 类型”。
我有义务链接到 Eric Lippert 关于此模式的文章:Curiouser and curiouser
关于c# - 父/子泛型关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16847952/
Có thể chuyển đổi một chuỗi theo cách này? Chúng tôi có cùng tham số và Java đã có lựa chọn đúng đắn. Nếu giá trị là số nguyên - chúng tôi gọi parsInt(value), nếu không, nếu giá trị thuộc loại double - chúng tôi gọi parsDoubl
Tôi xin lỗi trước nếu có lỗi ngu ngốc trong mã này, nhưng dường như tôi không thể sửa nó. Vấn đề của tôi là thế này, tôi biên dịch bằng GCC-8 (được cài đặt trên Mac thông qua home-brew) và sau đó thực thi trong terminal. Khi sử dụng int do để định nghĩa biến s &
Tôi đã sử dụng a-videoosphere để tạo cảnh a. Tôi đã thử sử dụng các nút để bật/tắt âm thanh nhưng một số ý tưởng không hiệu quả? Đây là mã của tôi: hàm var gargamel = 0;
Tôi đang sử dụng triển khai ISAAC để tạo số nguyên ngẫu nhiên. Tôi cần tạo giá trị gaussian từ các số nguyên này. Đầu tiên, tôi cần thay đổi chúng từ giá trị kép từ 0 thành 1. Làm cách nào tôi có thể thực hiện việc này trong Java? Đây là những gì tôi có cho đến nay để chuyển đổi số nguyên thành
Tôi nhận được giá trị hex trong phạm vi 0x0000 đến 0x01c2 từ BLE đến điện thoại của mình dưới dạng chuỗi. Để vẽ nó trong biểu đồ, tôi phải chuyển nó thành gấp đôi, tôi đã thử phương pháp này nhưng thật không may
Tôi có một Động vật siêu hạng và một Con chó thuộc lớp con. Trong bài học thứ ba, tôi có một Danh sách chấp nhận cả đối tượng lớp con và đối tượng siêu hạng. lớp công khai foo{
đóng cửa. Câu hỏi này cần được hỏi tập trung hơn. Câu trả lời không được chấp nhận vào thời điểm này. Bạn muốn cải thiện vấn đề này? Đã cập nhật câu hỏi để chỉ tập trung vào một vấn đề chỉnh sửa bài đăng này. Đã đóng 6 năm trước. Cải thiện truy vấn này
Tôi đang cố gắng truy vấn khoảng cách của người dùng của mình. Tôi có thể làm điều đó với mã này PFGeoPoint.geoPointForCurrentLocationInBackground { (geoPoint: PFGe
Hãy xem xét ví dụ: http://jsfiddle.net/KWLu7/16/ Tôi đang cố tính giá trị tầm quan trọng tổng thể bằng tổng tầm quan trọng của mỗi lựa chọn đã chọn nhân với tầm quan trọng tiêu chuẩn gốc của nó: var watch = $scope.$watch ( "
Câu hỏi này đã có câu trả lời ở đây: Giới hạn thuốc generic với từ khóa 'siêu' (6 câu trả lời) Đã đóng 2 năm trước. Tôi có một trình trang trí danh sách cho phép chuyển đổi từ danh sách này sang danh sách khác
Tại sao đoạn mã sau không chọn giá trị ẩn siêu lớp gần nhất? lớp A lớp B mở rộng Đặc điểm A TC[-T] { def show(t: T): Stri
Đây là những gì tôi muốn làm def merge[A, B, C](hoặc: Hoặc[A,B]*)(ẩn ev1: A x, x => x)) Giới thiệu về scala - suy ra (các) lớp cha chung
Tôi đang cố gắng lấy giá trị gấp đôi từ bảng Cassandra có cột loại kép. Tôi đã tạo bảng bằng cú pháp CQL3: CREATE TABLE data_double ( datetime
Đoạn mã sau có nên biên dịch mà không yêu cầu định nghĩa kiểu rõ ràng không? def prepList[B >: A](prefix: PlayList[B]) : PlayList[B] = prefix.fol
Tôi đang xem mã của ai đó và khi tạo cấu trúc, tôi đã sử dụng kiểu trừu tượng Tóm tắtFoo end julia> struct Foo1 struct Foo2 foo_op(x::Abst
Một số mã mẫu: public class Main { class SomeType { } class A { protected T createSome
Có thể chỉ chấp nhận loại siêu lớp của loại chung của lớp không? Thứ tôi đang tìm kiếm là: class MyClass { public void myMethod(TS someObject
Trong mã của tôi, tôi có một số ArrayList được chuyển vào phương thức sắp xếp. Mỗi ArrayList có các kiểu generic khác nhau, nhưng tất cả các kiểu này đều là triển khai của Sorter. Phương thức sắp xếp được thiết kế để chấp nhận một Arra thuộc loại Sorter
Nếu câu hỏi này đã được hỏi, vui lòng liên kết và đóng câu hỏi này. Tôi hiện đang tạo mẫu một API đơn giản hóa cho một API khác phức tạp hơn nhiều (và có khả năng nguy hiểm) để sử dụng. Xem xét việc tạo đối tượng có phần phức tạp liên quan, tôi quyết định
Tôi đang cố gắng xây dựng một ứng dụng Android với một số phụ thuộc, nhưng một trong số chúng gây ra lỗi này: Tệp lớp bất hợp pháp: Thông tin mô-đun lớp bị thiếu một supe
Tôi là một lập trình viên xuất sắc, rất giỏi!