2016-11-16 2 views
0

モノでC#のdotNETでこれを行うのは簡単ですか?#if ... #else ... #endifのショートカット#defineのように文字列として

#if __MonoCS__ 
    public static SqliteConnection NewConnection 
#else 
    public static SQLiteConnection NewConnection 
#endif 

Cでは、#ifして#defineして#elseして#elseして別のものとして定義できます。

私はC#プリプロセッサが私の望むものを許さないと知っていますが、WindowsとLinuxのSQLiteの違いに対処する簡単な方法はありますか?

おかげで、答えた人に


おかげ
ジム。 Cでは

#if __MonoCS__ 
    using Mono.Data.Sqlite; 
    using SQLiteCommand =  Mono.Data.Sqlite.SqliteCommand; 
    using SQLiteConnection = Mono.Data.Sqlite.SqliteConnection; 
    using SQLiteException = Mono.Data.Sqlite.SqliteException; 
    using SQLiteParameter = Mono.Data.Sqlite.SqliteParameter; 
    using SQLiteTransaction = Mono.Data.Sqlite.SqliteTransaction; 
#else 
    using System.Data.SQLite; 
#endif 

私は.hファイル内のすべてのものを置くと、必要な場合に、それを#include:SQLiteの依存
ファイルは今初めにこのようなステートメントが含まれています。 Mono C#プロジェクトでこれを行う方法はありますか?私は何もしなかった。

おかげで再び、
ジム

答えて

10

さて、あなたが使用してエイリアスディレクティブを使用することができます。そして、あなたが同じファイル内のどこにでもSQLiteConnectionを使用することができます

#if __MonoCS__ 
using SQLiteConnection = Foo.Bar.SqliteConnection; 
#endif 

を。

アダプターパターンを使用すると、コードを1つのコードにまとめることができます。そのため、コードの残りの部分はすべて同じにすることができます。

+0

@jon これら2行の違いは何ですか? __MonoCS__ のpublic static SqliteConnection newConnectionと の#else のpublic static SQLiteConnection newConnectionと –

+0

#endifの@viveknunaの#if: 'SQL' –

+0

感謝のケースを見てください。私は、SQLiteに依存する各ファイルの先頭近くに "using"ステートメントを追加することになりました。このコメントでコードの書式を設定することはできません。元の質問を編集します。 – JimH44