none
streamwriter について RRS feed

  • 質問

  • 初心者です 下記(簡略してあります)のswのみ 宣言されていませんアクセスできない保護レベル と出ます

    srは問題ありません 何が問題でしょうか?

    Public Class Class1
     Public Shared Sub Ai_PREP(層, 部材余裕)
            組込_LD()

      End Sub

      Public Shared Sub 組込_LD()
        
            sr = New System.IO.StreamReader(filenam1, System.Text.Encoding.GetEncoding("shift_jis"))

            sw = New System.IO.StreamWriter(filenam3, False, System.Text.Encoding.GetEncoding("shift_jis"))

     End Sub
    End Class


    t.suzu

    2016年4月19日 1:13

回答

  • 基本的に、変数は宣言する必要があります。以下のように宣言してみて下さい。

    Dim sw As System.IO.StreamWriter = New System.IO.StreamWriter(filenam3, False, System.Text.Encoding.GetEncoding("shift_jis"))

    開発のターゲットとされている.NET Frameworkのバージョンが高ければ、以下のように省略もできます。

    Dim sw = New System.IO.StreamWriter(filenam3, False, System.Text.Encoding.GetEncoding("shift_jis")

    # srがなぜ問題ないのかはわかりませんが、どこかで宣言しているのではないのでしょうか? いずれにしても上記の掲載されたままのコードではコンパイルできませんので、srが問題ないコードを見てみないと想像することしかできません。

    (追記)
    型の推論については誤解を生みそうですので、以下をご紹介しておきます。
    少し難しいかもしれませんが、.NETにおいて型を意識することは非常に重要なことです。

    連載! とことん VB: 第 3 回 型の推論 ~ Variant 型と Dim の違い
    https://code.msdn.microsoft.com/windowsdesktop/3-Variant-Dim-9801bb27


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    2016年4月19日 1:28
    モデレータ
  • おおむね異論ありませんが、VBなら型推論でなくても、昔から使えるAS NEW構文がありますヨ。

    Dim sw As New System.IO.StreamWriter(filenam3, False, System.Text.Encoding.GetEncoding("shift_jis"))


    jzkey

    • 回答の候補に設定 星 睦美 2016年4月20日 0:32
    • 回答としてマーク 星 睦美 2016年6月7日 6:42
    2016年4月19日 3:46

すべての返信

  • 基本的に、変数は宣言する必要があります。以下のように宣言してみて下さい。

    Dim sw As System.IO.StreamWriter = New System.IO.StreamWriter(filenam3, False, System.Text.Encoding.GetEncoding("shift_jis"))

    開発のターゲットとされている.NET Frameworkのバージョンが高ければ、以下のように省略もできます。

    Dim sw = New System.IO.StreamWriter(filenam3, False, System.Text.Encoding.GetEncoding("shift_jis")

    # srがなぜ問題ないのかはわかりませんが、どこかで宣言しているのではないのでしょうか? いずれにしても上記の掲載されたままのコードではコンパイルできませんので、srが問題ないコードを見てみないと想像することしかできません。

    (追記)
    型の推論については誤解を生みそうですので、以下をご紹介しておきます。
    少し難しいかもしれませんが、.NETにおいて型を意識することは非常に重要なことです。

    連載! とことん VB: 第 3 回 型の推論 ~ Variant 型と Dim の違い
    https://code.msdn.microsoft.com/windowsdesktop/3-Variant-Dim-9801bb27


    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    2016年4月19日 1:28
    モデレータ
  • おおむね異論ありませんが、VBなら型推論でなくても、昔から使えるAS NEW構文がありますヨ。

    Dim sw As New System.IO.StreamWriter(filenam3, False, System.Text.Encoding.GetEncoding("shift_jis"))


    jzkey

    • 回答の候補に設定 星 睦美 2016年4月20日 0:32
    • 回答としてマーク 星 睦美 2016年6月7日 6:42
    2016年4月19日 3:46