LastUpdate: 2022/07/03 12:14:24
戻る
20041217 属性って何?
20050125-1 コーディング規約
20050207-1 とにかくDBのアクセスをしてみよう
20050531 Visual Basic 6.0 以前から、Visual Basic .NET に移行するためのテクニカル情報
20060713 デバッグクラス
20100801_クリップボードへテキストを設定する
20101013_標準入出力への出力
20101013_Try_Catch_の基本系_
20190728 スコープのまとめ
20190812 クラスの上についている< >とか何?
20220703 よくあるUTFのSJIS換算切り出し
属性とは、クラス、メソッドなど、プログラミングに使用するさまざまな構成要素に付加できる情報といえる。
属性の情報は、ソース・コード上に記述することが可能で、さまざまなプログラムからこの情報が参照できる。VB 6に限らず、これまでのプログラム言語ではあまり見かけない新しいタイプの機能だが、活用できるようになると効果は絶大である。固定長文字列など、一部の機能は、この属性を通じて指定することになるので、属性の使い方を把握しておこう。
http://www.atmarkit.co.jp/fdotnet/vb6tonet2/vbnet2_14/vbnet2_14_01.html
MSDNヘルプ
Visual Basic 言語の概念 プログラム構造とコード規則
ms-help://MS.MSDNQTR.2003FEB.1041/vbcn7/html/vbconProgrammingGuidelinesOverview.htm
ASP.NETで、アクセスコントロール部品を使用してでも良いから、やってみる
VB マイグレーション Tips
Visual Basic 6.0 以前から、Visual Basic .NET に移行するためのテクニカル情報
http://www.microsoft.com/japan/msdn/vbasic/migration/tips/
Visual Basic 6.0 ユーザー向けのヘルプ 2011/09/01
http://msdn.microsoft.com/ja-jp/library/kehz1dz1(v=VS.90).aspx
http://support.microsoft.com/kb/313417/ja
デバッグクラス
Trace クラスと Debug クラスは同じアプリケーション内で、個別または同時に使用できます。Debug ソリューション構成のプロジェクトでは、Trace クラスの出力と Debug クラスの出力は両方ともアクティブなため、すべての Listener オブジェクトに対して両方のクラスからの出力が生成されます。これに対して、Release ソリューション構成のプロジェクトでは、Trace クラスの出力のみ生成されます。Debug クラスのメソッドによる呼び出しはすべて無視されます。
要は、デバッグビルド時でトレースメッセージを出力する時は、Debug を使用すれば良いみたいですね
VB
Clipboard.SetDataObject(CmdArgs(0), True)
これを見本にして、ファイル名のフルパスを、クリップボードに設定するアプリケーションを応用して作成してみた
VS2008 vb Express版
visualstudio_dotnet_VB/20100801_fileNamePickker.zip
Console.WriteLine("start")
Module Module1 Sub Main() Console.WriteLine("start") Try Console.WriteLine("in try") Exit Try Console.WriteLine("in try end") Catch ex As Exception Console.WriteLine("excption") Finally Console.WriteLine("finally") End Try Console.WriteLine("end") End Sub End ModuleTry内には、Catch または、Finallyが 必ずなくてはならない。無いとコンパイルエラーになる
自分のプロジェクト内 | 異なるプロジェクト | |||||
自分のクラス | 派生クラス | 他クラス | 派生クラス | 他クラス | ||
Public | 〇 | 〇 | 〇 | 〇 | 〇 | 制限なく、どこからでも見える |
Protected Friend | 〇 | 〇 | 〇 | 〇 | × | 自分のプロジェクト、または、派生クラスから見える |
Protected | 〇 | 〇 | × | 〇 | × | 派生クラスから見える |
Friend | 〇 | 〇 | 〇 | × | × | 自分のプロジェクトからなら見える |
Private | 〇 | × | × | × | × | 同一クラス内のみ |
スコープが省略された場合
Class、InterfaceはFriend扱い。内部メンバはPrivate扱いとなる
参考
https://smdn.jp/programming/vb.net/accessibility/
「属性」だそうです。
あらかじめ用意されたものもあれば、自分でも作成できるそうな。
Public Class SJISHelper Private _UTFString As String Private SJISEncoder As System.Text.Encoding = System.Text.Encoding.GetEncoding(932) Private UTF16Encoder As System.Text.Encoding = System.Text.Encoding.Unicode Sub New(ByVal UTFString As String) _UTFString = UTFString End Sub Public ReadOnly Property UTFString() As String Get Return _UTFString End Get End Property Public Function GetByteUTF16() As Integer Return UTF16Encoder.GetByteCount(_UTFString) End Function Public Function GetByteSJIS() As Integer Return SJISEncoder.GetByteCount(_UTFString) End Function Public Function GetStringByteLen(ByVal byteLen As Integer) As String ' 引数チェック If byteLen < 0 Then Throw New ArgumentException(String.Format("byteLenは0以上を指定してください。{0}が指定されました。", byteLen)) End If 'SJIS換算のバイト長を求める Dim sjisByteLen As Integer = GetByteSJIS() '文字列が指定のバイト数以下の場合は、入力をそのまま返す If sjisByteLen <= byteLen Then Return _UTFString End If 'SJIS換算のバイト長で切ってみる →strTemp Dim sjisByteArr As Byte() = SJISEncoder.GetBytes(_UTFString) Dim utfStr As String = SJISEncoder.GetString(sjisByteArr, 0, byteLen) ' 末尾の漢字が分断されたらバイト数-1で切り取る If utfStr.EndsWith("・") Then utfStr = SJISEncoder.GetString(sjisByteArr, 0, byteLen - 1) End If Return utfStr End Function End Class