1

こんにちは、コードを VB.NET から C# に変換しました。Developer Fusion を使用して変換しました。最初は多くのエラーがありましたが、これ以外のすべてのエラーをクリアしました。これはVB.netコードです:

   If cxnDb.State = ConnectionState.Open Then

   If AppSettings("skipCredits") Is Nothing Then

   Console.WriteLine("CREDITS")

   chargeCredits(cxnDb)

   Console.WriteLine()

   End If 

そして、これは私が持っている同等のC#コードです:

     if (cxnDb.State == ConnectionState.Open)
      {
     if (System.Configuration.ConfigurationManager.AppSettings["skipCredits"] == null)
      {
      Console.WriteLine("CREDITS");
      chargeCredits( ref cxnDb);
      Console.WriteLine();
      }

しかし、ソリューションを構築しようとすると、次のようになります。

「変数の使用」エラーであるため、「cxnDb」を ref または out 引数として渡すことはできません。

取得しているrefキーワードを削除すると、refキーワードchargeCredits(cxnDb);で渡す必要があります。

誰かがこれで私を助けることができますか?

更新: 私の C# の chargeCredits メソッドの実装は次のとおりです。

     private static void chargeCredits( SqlConnection cxnFinanceDb)
    {
        using (SqlCommand cmdCredits = cxnDb.CreateCommand())
        {
            cmdCredits.CommandType = CommandType.StoredProcedure;
            cmdCredits.CommandText = "bill_Credits";
            cmdCredits.CommandTimeout = 60;

            try
            {
                cmdCredits.ExecuteNonQuery();
            }
            catch (SqlException exDetail)
            {
                Console.WriteLine(" + cmdCredits.SqlException :: " + exDetail.Message);
            }
            catch (Exception exDetail)
            {
                Console.WriteLine(" + cmdCredits.Exception :: " + exDetail.Message);
            }
            finally
            {
                cmdCredits.Dispose();
            }
        }
         }

ここでは、メソッドを機能させるために ref を削除しました。

4

1 に答える 1

-1

refここでは不要です。どこから入手したかはわかりませんが、あなたの場合は必要ありません。

したがって、最も簡単な解決策は、それを削除することです。

これは、ここから削除することを意味します。

chargeCredits( ref cxnDb);

そしてあなたのchargeCredits方法からも。次のようなものだと思います。

public void chargeCredits(ref SqlConnection cxnDB)

そこからも外します。

于 2013-10-01T16:05:15.507 に答える