VB.net」タグアーカイブ

開発言語別簡易文法チート表、VB.NETとC#のチート表他Javascript、PHP

開発言語別簡易文法チート表、VB.NETとC#のチート表他Javascript、PHP
チートとはずるいとか卑怯とか騙すいう意味があるらしいけど、開発言語とか良い意味で使えば便利とか得するとか秘伝、秘密の巻物的な意味合いも出てくるだろう。
簡単に言えば、開発言語別の文法一覧。
いくつも言語を使っていると、IF文だけでもそれぞれ異なる。でもまとめてみると以外にもグループ分けすれば同じ文法だったりする。
C言語系はほぼ同じ。
Rubyとかパイソンとかのスクリプト系は独自路線を走ってる。
スプレッドシートにまとめていたので、下のPDFからダウンロードできる。
見にくかったりまとまったりしているのは、書きなぐりだから。きれいにレイアウトするのが面倒になった。

・文法の特徴と類似点
C,C++,C#とJAVA,JAVASCRIPT、Google App Script,PHPは似ている
VBとCLASSICASPとエクセルは似ている

開発言語別簡易文法チート表、VB.NETとC#のチート表他Javascript、PHP – チート表PDF 2019/04/06版随時改定予定

続きを読む

C#、VB.net 抽象クラス、インターフェースの勉強

C#、VB.net 抽象クラス、インターフェースの勉強

個人や小規模のソフトなら、継承だけ使っていれば問題ないはずだが、抽象クラス、インターフェースの使い方を覚えていないと他人のソースコードを見たときに意味がわからなくなるから、結局知っておかねばならない。
人生は余計なものも覚えないとやっていけないことがわかる。
毎日カップラーメン食べてれば健康に悪いのと一緒だと思えばよい。

続きを読む

VB.netのクラスで覚えたことを書いておく


VB.netのクラスで覚えたことを書いておく

インターフェース
よくわからないが、一言で言えば、派生クラスのオブジェクトをメソッドの引数として使える(意味があっているかわからないが)
だから、クラスのメソッドを派生クラスごとに作成する必要がなくなる。
ではどんな用途に向いているのか?
実際どんなときに使えるのかがよくわからない。
あまり使わないが使えると便利なのでできるだけ使うようにしておくと良いと思う。

・抽象クラスとは、基底クラスでオブジェクトは作れない。抽象メソッドがあると派生クラスもオブジェクトは作れない。
つまり、派生クラスで使用することが前提となる。
なので
オーバーライドする必要がある。

・継承について
コンストラクタ(Newメソッド)が派生クラスにある場合、派生クラスと基底クラスも実行されるので、注意が必要
例えば基本クラスのNewにプリント文があるとして、派生クラスのNewにもプリント文がある。
なんとなく、派生クラスのNewだけが実行されると思ってしまうが、結局全部実行される。これはコンストラクタだけの問題。
継承でもオーバーライドは使える。てっきり継承では使えず、抽象クラスで使うものかと思ってしまった。

基底クラスにOverridable 関数
派生クラスにOverrides 関数とする。
そうすると派生クラスで書いた関数が基底クラスの関数を上書きする

継承クラスの考え方は抽象クラスとほぼ同じなので、
抽象クラスを使いつつ、インターフェースとして活用できる道を考えてみる

文章で説明されてもすぐにイメージできないし理解できない。そうなると使えるようになるわけではないので、実際に実行して理解を深めるほかない。
動かしているうちになんとかわかってくるものである。
実際に使うときは、ほとんど継承の基本的な部分しか使いこなせない。
しかし、知識として知っていないとサンプルコードが読めなくなる。

事例
VB.netコンソールプロジェクトの例 実行はCtr+F5でコンソールが出力される。
実行だけではすぐに消える

Module Module1
‘VB.net 継承クラスと抽象クラスの書き方2018年12月22日勉強中
‘(1)継承クラス
‘ 書き方
‘ オーバーライドで基底クラスと派生クラスの宣言が異なる
‘ 基底クラス:オーバーライドはOverridable
‘  派生クラス:Inheritsを書いてオーバーライドOverrides
‘ コンストラクタnewはオーバーライドされないので基底クラスと派生クラスのコンストラクタNewが実行される
‘(2)抽象クラス

VB.net 2018年12月23日
Module Module1 ’コンソールアプリ
Sub Main()
    '抽象クラス
    Dim test As subCamera = New subCamera
    test.Release()
    Console.WriteLine(test.mainString)

    '継承Inherits
    Dim testKeisho As KeishoClass = New KeishoClass
    testKeisho.keishoFunc()
    testKeisho.OverTest() 'overrideした関数 
        '参照渡しと値渡しの勉強
        Console.Write("初期値")
        Dim i As Integer = 5

        Console.WriteLine(i)
        Dim sansho As SanshoClass = New SanshoClass
        sansho.sansho(i)
        Console.Write("参照:")
        Console.WriteLine(i)
        Console.Write("")
        Console.Write("初期化")
        i = 5
        Console.WriteLine(i)
        Console.Write("値渡し:")
        Console.WriteLine(i)
        sansho.atai(i)
        Console.Write("値渡しは値は変わらず")
        Console.WriteLine(i)
End Sub
End Module
 '抽象クラス
 MustInherit Class Camera
     Public mainString As String
     'mainString = "main" 'ここでは与えられない
     MustOverride Sub Release() 'オーバーライドされる。というか何もない
 End Class
 Class subCamera : Inherits Camera
     Overrides Sub Release()
         mainString = "main"
         Console.WriteLine("subCamera Release")
     End Sub End Class 
'継承クラス
Class NormalClass
    Public Sub New()
 'Inherits継承ではコンストラクタはオーバーライドされないことを知っておく。<br>
        Dim newClassString As String
        newClassString = "NewClassString"
        Console.WriteLine(newClassString)
    End Sub
  Overridable Sub OverTest() '一文字が大文字
     Console.WriteLine("overTest normal")
  End Sub
End Class
Class KeishoClass : Inherits NormalClass
    Public Sub New()
        'Inherits継承ではオーバーライドされないことを知っておく。
        'そのため親ClassのNewも実行されるので子Classでは差分を書くこと
        Dim keisho As String
        keisho = "keishoString"
        Console.WriteLine(keisho)
    End Sub
    Overrides Sub OverTest() '一文字が大文字 オーバーライドした
        Console.WriteLine("overTest overRide")
    End Sub
Public Sub keishoFunc()
    Console.WriteLine("keishoFunc")
End Sub
End Class
Class SanshoClass : Inherits NormalClass
    '参照渡しの勉強 C言語ならポインタとかアドレスを使ったけどVBなのでBYREF,とかBYVALになる
    Public Sub sansho(ByRef x As Integer)
        x = 10 '参照なので値が変わる
    End Sub
    '値渡しの勉強
    Public Sub atai(ByVal x As Integer)
        x = 10 '値渡しなので値は変わらない
    End Sub
End Class

VB.NETでMySQLに接続 リンク

VB.NETでMySQLに接続 リンク

https://lab.unicast.ne.jp/2014/06/03/vb-netでmysqlを接続/

【VB.NET】MySQL(MariaDB)に接続してデータを DataGridView に表示してみる
https://www.doraxdora.com/blog/2018/01/17/post-3707/

VB.netに接続するためにDLLをダウンロードする
http://www.mindkernel.com/docs/Windows/VisualBasic/WTC2013101101/

Visual Studio 2017から MySQL へ接続
https://qiita.com/Masutani/items/ce613bb371c7915b74b9
VSでMySQLにも接続ができた。なんだあったのか。知らんかった。

VB.NETでDirectX ゲーム開発情報

ゲーム開発はどうしてもC++、C#となる。
でもVB.netで、ゲーム開発ができればもっといい。そのために情報を集める。
基本的にVB、DirectXでもゲーム開発は可能だけどDirectXはいろいろと厄介。
なのでフレームワークか簡単使えるライブラリがあるとたすかる
続きを読む

VB.netリストボックスで選択した内容に合わせて2つのディレクトリを作成する。

VB.netリストボックスで選択した内容に合わせて2つのディレクトリを作成する。
単にディレクトリを作成するだけのVBコード
すぐに使い方を忘れるのでメモ
シンプルなクラスを使って分岐用のディレクトリパスに使用している。
構造体を使用したら、面倒なので使わないほうがよいとネットに書いてあってクラスを使うことにした。
iOSではクラスを使うとメモリを消費すると言われてVBで構造体にしたけど、エラーが出て型を合わせるのが面倒だった。
続きを読む