1

Windows Phone 7.1 で sql-net と C# Sqlite の組み合わせを使用すると、「ref」と「out」のキーワード エラーが発生します。これは、使用しているライブラリの組み合わせが間違っているためですか?

アプリの種類: Windows Phone 7.1

使用:

  1. sql-net バージョン 1.0.5、ソース Nuget から Visual Studio
  2. WP7 用の C# Sqlite (wp7sqlite) (Community.CSharpSqlite.WP7) バージョン 0.1.1、Visual Studio を介したソース Nuget。

私が受け取る正確なエラーは以下のとおりです

エラー 5 The best overloaded method match for Community.CsharpSqlite.Sqlite3.sqlite3_open(string, ref Community.CsharpSqlite.Sqlite3.sqlite3)' has some invalid arguments C:\Dev\Learning\SQLite.cs Line:2492 Column: 29

次のエラーは、「ref」型ではなく「out」型として渡されたパラメーターに関連していることを示唆しています。

エラー 6 引数 2 は 'ref' キーワードで渡す必要があります C:\Dev\Learning\SQLite.cs 行: 2492 列: 64

「out」キーワードを「ref」キーワードに置き換えることでコンパイル エラーをなくすことができますが、他の問題が発生する可能性があります。この問題について不満を言う人はあまりいないので、何か間違ったことをしているのかもしれませんが、簡単には検出できません。

4

2 に答える 2

2

csharp-sqlite(sqlite-netでオプションで(?)を使用)のパラメーターが3.7.6.3から3.7.7.1に変更されました。このコミットをref参照してoutください(2692行目を探してください)。

コードを更新したくない場合は、新しいバージョンのcsharp-sqliteを使用する必要があります。何らかの理由で古いバージョンを使用している数少ない人の1人であるため、これについてはおそらく多くの質問は表示されません。

于 2012-11-26T11:01:58.460 に答える
0

次のメソッドシグネチャ

Community.CsharpSqlite.Sqlite3.sqlite3_open(string, ref Community.CsharpSqlite.Sqlite3.sqlite3)

2番目の引数が参照によって渡されることを明確に示しています(ref

したがって、このメソッドを呼び出すときは、refの代わりにキーワードを使用してoutください。

ここにもたくさんの情報があります:

.NETのrefパラメータとoutパラメータの違い

于 2012-11-26T10:17:00.963 に答える