回答編集履歴
2
ゴミを削除
answer
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
```C#
|
6
6
|
public TableQuery<T> Table<T>() where T : new();
|
7
7
|
```
|
8
|
-
となっていて、型パラメータ`T`に
|
8
|
+
となっていて、型パラメータ`T`に new 制約があります。
|
9
9
|
この制約に反した場合に、
|
10
10
|
|
11
11
|
> 'T' は、ジェネリック型またはメソッド 'SQLiteConnection.Table<T>()' 内でパラメーター 'T' として使用するために、パブリック パラメーターなしのコンストラクターを持つ非抽象型でなければなりません
|
1
修正箇所が漏れていたので修正
answer
CHANGED
@@ -5,11 +5,23 @@
|
|
5
5
|
```C#
|
6
6
|
public TableQuery<T> Table<T>() where T : new();
|
7
7
|
```
|
8
|
-
となっていて、型パラメータ`T`に [new 制約](
|
8
|
+
となっていて、型パラメータ`T`に [new 制約]( があります。
|
9
9
|
この制約に反した場合に、
|
10
10
|
|
11
11
|
> 'T' は、ジェネリック型またはメソッド 'SQLiteConnection.Table<T>()' 内でパラメーター 'T' として使用するために、パブリック パラメーターなしのコンストラクターを持つ非抽象型でなければなりません
|
12
12
|
|
13
13
|
というエラーになります。
|
14
14
|
|
15
|
-
エラーを解消するには、`Person`クラスにパブリックかつパラメータなしのコンストラクタの追加
|
15
|
+
エラーを解消するには、`Person`クラスにパブリックかつパラメータなしのコンストラクタの追加と、`DBhandler.GetAllData<T>()`の`T`型にnew制約をつける必要があります。
|
16
|
+
|
17
|
+
```C#
|
18
|
+
class Person {
|
19
|
+
public Person() {}
|
20
|
+
}
|
21
|
+
|
22
|
+
class DBhandler {
|
23
|
+
public static List<T> GetAllData<T>(string databasePath) where T: new() {
|
24
|
+
//(省略)
|
25
|
+
}
|
26
|
+
}
|
27
|
+
```
|