マイナーでもいいよね??

殆どVB系、でも .NET じゃない VB は知らないよん

目次

Blog 利用状況

書庫

日記カテゴリ

Directoryオブジェクト用のクラス

WindowsアプリとWebアプリのフォーム上のコントロールにバインドしたり、フォーム側から楽に処理したりできるように、定義したDirectoryオブジェクト用のインターフェイスを実装したクラスを作成していきます。

長くなるので宣言部のみ書きます。大事なとこはちゃんと内部実装を書きます。

最初は DirectoryObject クラス。このクラスはサンプルアプリで扱う Directory オブジェクトの最も基本となるクラスです。

VB

Public MustInherit Class DirectoryObject

  Implements IDirectory

  'コンストラクタ

  'DirectoryEntry を指定して DirectoryObject クラスの新しいインスタンスを初期化します。

  Protected Sub New(entry As DirectoryEntry)

 

  'プロパティ

  'Directory オブジェクトの種類を取得します。

  Public ReadOnly Property Category As CategoryType

  '説明を取得または設定します。

  Public Property Description As String Implements IDirectory.Description

  '関連付けられた DirectoryEntry を取得します。

  Public ReadOnly Property Entry As DirectoryEntry Implements IDirectory.Entry

  'オブジェクトが破棄されているかどうかを取得します。

  Public ReadOnly Property IsDisposed As Boolean Implements IDirectory.IsDisposed

  '名前を取得します。

  Public Overridable ReadOnly Property Name As String Implements IDirectory.Name

 

  'メソッド

  '使用されているリソースを解放します。

  Public Sub Dispose() Implements IDisposable.Dispose

  '名前を返します。

  Public Overrides Function ToString() As String

  '使用されているリソースを解放し、オプションでマネージ リソースも解放します。

  Protected Overridable Sub Dispose(disposing As Boolean)

 

C#

public abstract class DirectoryObject : IDirectory

  //コンストラクタ

  //DirectoryEntry を指定して DirectoryObject クラスの新しいインスタンスを初期化します。

  protected DirectoryObject(DirectoryEntry entry)

 

  //プロパティ

  //Directory オブジェクトの種類を取得します。

  public CategoryType Category

  //説明を取得または設定します。

  public string Description

  //関連付けられた DirectoryEntry を取得します。

  public DirectoryEntry Entry

  //オブジェクトが破棄されているかどうかを取得します。

  public bool IsDisposed

  //名前を取得します。

  public virtual string Name

 

  //メソッド

  //使用されているリソースを解放します。

  public void Dispose()

  //名前を返します。

  public override string ToString()

  //使用されているリソースを解放し、オプションでマネージ リソースも解放します。

  protected virtual void Dispose(bool disposing)

 

コンストラクタ内で引数のチェックをしてます。

VB

If entry Is Nothing Then

  Throw New ArgumentNullException("entry", "entry が Nothing です。")

End If

If [Enum].TryParse(Of CategoryType)(entry.SchemaClassName, True, _category) = False Then

  Throw New ArgumentException("entry の種類が CategoryType に該当しません。", "entry")

End If

C#

if (entry == null)

{

  throw new ArgumentNullException("entry", "entry が null です。");

}

if (Enum.TryParse<CategoryType>(entry.SchemaClassName, true, out _category) == false)

{

  throw new ArgumentException("entry の種類が CategoryType に該当しません。", "entry");

}

 

DirectoryEntry.SchemaClassName プロパティの値を CategoryType 列挙体の値に変換できなかったら、サンプルアプリで扱わない Directory オブジェクトとし ArgumentException をスローしてます。

 

Description プロパティの Get 内はこんな感じ。

VB

If _disposed Then

  Throw New ObjectDisposedException(Me.GetType().Name)

End If

Return DirectCast(_entry.Properties.Item("description").Value, String)

C#

if (_disposed)

{

  throw new ObjectDisposedException(this.GetType().Name);

}

return (string)_entry.Properties["description"].Value;

 

DirectoryEntry.Properties プロパティの description 属性の値を返してます。

Set 内はこの値を設定してるので、何か値をセットして例えば更新ボタンクリック時の処理として DirectoryEntry.CommitChanges メソッドを呼び出すと、そのオブジェクトの「説明」が更新されます。

投稿日時 : 2013年7月4日 23:58

コメントを追加

# write a essay for me o14mgt 2022/09/09 3:10 Charlosmox

You actually said this perfectly. https://definitionessays.com/ how to write an literary analysis essay

# how to write journal paper e613cp 2023/02/09 4:14 Albertosed

You actually revealed this superbly.

https://service-essay.com/ buy papers online

# buy doctoral dissertation a66fpx 2023/02/27 9:48 Robertsaids


Cheers. Loads of information.
define dissertation paper https://dissertationwritingtops.com/ nursing dissertation writing services

# reliable service thane paper writing e72jqb 2023/03/01 9:13 StevenGrelo

You suggested that very well.
buy cheap paper https://service-essay.com/ essay writing paper service

# thesis statement about depression a97vbw 2023/03/03 7:24 Josephbried


Thanks a lot, Wonderful stuff!
write me a thesis statement https://writingthesistops.com/ argumentative thesis statement

# persuasive essay help c92xtf 2023/03/06 13:16 EugeneSib


Kudos, A lot of material!
master degree dissertation https://bestmasterthesiswritingservice.com personal essays for college https://writingpaperforme.com

# how to conclude a college essay q78ibv 2023/03/07 19:27 EugeneSib


Thanks, I appreciate it.
custom writing sign in https://researchpaperwriterservices.com cheap ghost writer services https://custompaperwritingservices.com

# higher english critical essay help q656zb 2023/03/08 11:21 EugeneSib


With thanks. Good stuff!
funny college essays https://helpmedomyxyzhomework.com college essay pdf https://service-essay.com

# how i write essay w35cos 2023/03/09 3:52 EugeneSib


Regards, I enjoy this!
umi publishing https://essayssolution.com custom essay writers https://dissertationwritingtops.com

# write my essay please q548ih 2023/03/09 18:52 EugeneSib


Terrific write ups. Thanks a lot.
essay correction service https://argumentativethesis.com essay correction service https://essaywriting4you.com

# custom speech writing e17ljg 2023/03/09 23:43 Gregorysaipt


With thanks. I enjoy it!
best friend essay writing https://ouressays.com order custom essays online https://service-essay.com

# why do we write essays g19yxv 2023/03/10 21:12 Gregorysaipt

You reported it well!
dissertation essay https://customthesiswritingservice.com help with college essay writing https://essaywritinghelperonline.com

# essay writing services m15gdx 2023/03/10 23:57 EugeneSib

You mentioned it adequately!
case study writing service https://essaytyperhelp.com help to write an essay https://essaywriting4you.com

# best medical school essay editing service d35bqh 2023/03/12 20:30 EugeneSib


Many thanks! Helpful information.
law school essay writing service https://helpwithdissertationwriting.com how to write an analytical essay https://helpwritingdissertation.com

# how to write a good act essay u44kfd 2023/03/13 11:06 EugeneSib


Amazing material. Appreciate it!
what are the best essay writing services https://essayssolution.com writing expository essay https://essayservicehelp.com

# geography dissertation s66lnj 2023/03/13 14:25 Gregorysaipt


Well expressed certainly. .
good college essay prompts https://homeworkcourseworkhelps.com custom dissertation writing services https://essaywritingservicebbc.com

# how to write a summary response essay w935tc 2023/03/14 1:55 EugeneSib


Awesome material. Cheers.
dissertation scholarship https://bestmasterthesiswritingservice.com online writing service https://writeadissertation.com

# The plugins developed for WordPress 2023/05/09 23:16 Justas

The plugins developed for WordPress serve to enhance the features and functions of a WordPress website, allowing you to build your awesome and functional site https://t.me/wpigaming/648 Customise WordPress with powerful, professional and intuitive fields.

タイトル
名前
URL
コメント