たまに「じゃんぬねっと」が生存確認をする日記

しょーもない日記

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  981  : 記事  4  : コメント  68628  : トラックバック  277

ニュース

My Website

初心者向けのサイトです。

C# と VB.NET の入門サイト

社員募集中

社内 SE を募集中。採用は私の判断。保守は少なめで開発がメインのため、停滞思考の方はお断りします。開発に自信のある方だけメッセください。残業なし。もし発生したら残業代は全額支給。現在リモートワーク中。

モデル年収: 26歳経験3年450万。34歳経験11年620万。38歳経験17年850万 (ボーナス別)。

最近のできごと

東区で夢のマイホーム買いました。可愛い娘と息子と幸せな日々を送っています。

ゴリラは飼っていません(笑)

Sponsored Link1

Sponsored Link2

Archive

書庫

定数をグループ化できる列挙体 (Enum) は大変便利な機構です。ただし、Char 以外の整数型しか扱うことができません。

データベース周りのコードを書いていると、フィールドなどをベタに指定したくない場合があります。このような場合、「文字列 (System.String 型) の列挙体があればなぁ」などと思うことでしょう。実際私も VB6 を触っていた頃、喉から手が出るほど欲しい機構でした。

.NET では、このような場合には「型付データセット (DataSet)」を使います。狭義のデータベースである必要もなく、フィールドが表現できるのであれば使えます。

それでも、列挙体の System.String 型バージョンが使いたくてやまない場合。クラスに公開された定数メンバ フィールドを並べたりするハズです。(C# だと読めない (読まない) 方が多いらしいので、VB で書いてみました)

VB.NET

'/** 全日本グループ クラス */
Public MustInherit Class 全日本グループ
    Public Const みさき       As String = "みさき"
    Public Const つばさ       As String = "つばさ"
    Public Const にゅうが     As String = "ひゅうが"
    Public Const まさお       As String = "まさお"
    Public Const にった       As String = "にった"
    Public Const かずお       As String = "かずお"
    Public Const まつやま     As String = "まつやま"
    Public Const じとう       As String = "じとう"
    Public Const そうだ       As String = "そうだ"
    Public Const いしざき     As String = "いしざき"
    Public Const わかばやし   As String = "わかばやし"
End Class

'/** ドイツグループ クラス */
Public MustInherit Class ドイツグループ
    Public Const シュナイダー As String = "シュナイダー"
    Public Const メッツァ     As String = "メッツァ"
    Public Const マーガス     As String = "マーガス"
    Public Const シェスター   As String = "シェスター"
    Public Const カペロマン   As String = "カペロマン"
    Public Const ポブルセン   As String = "ポブルセン"
    Public Const カルツ       As String = "カルツ"
    Public Const ヘルマー     As String = "ヘルマー"
    Public Const フライハイト As String = "フライハイト"
    Public Const ブリクサ     As String = "ブリクサ"
    Public Const ミューラー   As String = "ミューラー"
End Class

この方法の欠点は、「自分で定義した変数名に、その "変数名と同じ文字列" を自分で格納する必要がある」これに尽きると思います。

これでは、面倒な上に typo (打ち損じ) がないとも限りません。これを、常に正しく自動で格納するにはどうすれば良いのか考えてみました。リフレクションを使ってかなり異端な実装をします。

VB.NET

'/** ここでインスタンス化する */
<Microsoft.VisualBasic.CompilerServices.StandardModule()> _
Public NotInheritable Class 標準モジュール扱いのクラス
    Public Shared ReadOnly 全日本グループ As New JapanGroup()
    Public Shared ReadOnly ドイツグループ As New GermanyGroup()
End Class

'/** BaseFields クラス */
Public MustInherit Class BaseFields
    Public Sub New()
        Dim hType As System.Type = Me.GetType()
        Dim hFieldInfos As System.Reflection.FieldInfo() = hType.GetFields ( _
            System.Reflection.BindingFlags.GetField     Or _
            System.Reflection.BindingFlags.Public       Or _
            System.Reflection.BindingFlags.Instance     Or _
            System.Reflection.bindingflags.DeclaredOnly    _
        )

        For Each aFieldInfo As System.Reflection.FieldInfo In hFieldInfos
            aFieldInfo.SetValue(Me, aFieldInfo.Name)
        Next
    End Sub
End Class

'/** 全日本グループ クラス */
Public NotInheritable Class JapanGroup : Inherits BaseFields
    Public ReadOnly _
        みさき,     _
        つばさ,     _
        にゅうが,   _
        まさお,     _
        にった,     _
        かずお,     _
        まつやま,   _
        じとう,     _
        そうだ,     _
        いしざき,   _
        わかばやし  _
    As String
End Class

'/** ドイツグループ クラス */
Public NotInheritable Class GermanyGroup : Inherits BaseFields
    Public ReadOnly   _
        シュナイダー, _
        メッツァ,     _
        マーガス,     _
        シェスター,   _
        カペロマン,   _
        ポブルセン,   _
        カルツ,       _
        ヘルマー,     _
        フライハイト, _
        ブリクサ,     _
        ミューラー    _
    As String
End Class

この実装ですと、使う直前に必ず「変数名と同じ文字列」が常に正しく格納されます。その代わりインスタンス メンバになってしまうのが玉に瑕です。

初期化を保証しなくて良い、手動で保証するのであれば、静的フィールドを使う方法もあります。詳しくは下記リンク先をご覧ください。

まあ、「こんな方法を取るな」と言われればそれまでですが、定数のように決まりきった値を使いたい、変数名と同じである保証をしたい。という理由があって、DataSet を使わない場面は一応あります。

リンク先のスレッドだと、テーブルおよびインデックスしかサンプルにあがっていないので、DataSet を使うべきという意見が出ていますが、そういう場面でない時、です。テーブルとか関係なく、グループ化された固定文言とでも言うべき (表現が難しい) 場面です。

私の場合は、レポート コンポーネントの動的なヘッダのパターンがあって、その時は、式フィールドを使ったりしたのですが、正直欲しいと思いましたね。

以上、愚かな試みでした... (*_ _)


こんな劣悪な記事を参考にして、損をしている人が出ているようですので、追記します。

当時、タイプセーフな自作 enum を作るという頭がなかったのか、こんなお遊び記事になっていますが、2 つ有効な方法があります。

ひとつは、.NET 標準の enum を使い、カスタム属性で文字列を拡張する方法。拡張メソッドでそれを取得するメソッドを定義すれば汎用的に使えるでしょう。

もうひとつは Java の enum のように自由かつ強力な拡張が可能な以下のような方法です。たとえば、こんな基底クラスを用意して、

VB.NET

Public MustInherit Class CustomEnumBase(Of TKey, TValue)

    Private key As TKey
    Private value As TValue

    Public Sub New(ByVal key As TKey, ByVal value As TValue)
        MyClass.key = key
        MyClass.value = value
    End Sub

    Public Overrides Function ToString() As String
        Return MyClass.value.ToString()
    End Function

End Class

こんな風にメンバを定義します。

VB.NET

Public NotInheritable Class MyCoke
    Inherits CustomEnumBase(Of Integer, String)

    Public Shared ReadOnly Member1 As New MyCoke(1, "Pepsi NEX")
    Public Shared ReadOnly Member2 As New MyCoke(2, "Pepsi Special")

    Public Sub New(ByVal key As Integer, ByVal value As String)
        MyBase.New(key, value)
    End Sub

End Class

こうすれば、通常の enum と同じようなイメージで使用できます。

メンバ同士の比較が必要な場合は (っていうか普通必要ですけど) compare なメソッドを用意して演算子をオーバーロードすると良いでしょう。めんどくさいので書きません。

投稿日時 : 2006年4月4日 11:33

コメント

# re: 文字列の列挙体 2006/04/04 12:02 じゃんぬ
簡単に言えば、
 使うためにはインスタンス化しなくてはならない
->インスタンス化すると基底クラスのデフォルト コンストラクタが実行される
->コンストラクタでリフレクションを使って "変数名" を取得してそのまま格納
とされるので中身も保証されると。

ちなみに、
 Dim hType As System.Type = Me.GetType()
を、
 Dim hType As System.Type = MyClass.GetType()
にすると、Me と MyClass の違いもわかることでしょう。

いや... あのね、ホント空しいので何かそれっぽいこと書いておきたいんですよ。

# re: 文字列の列挙体 2006/04/04 15:29 囚人
>(C# だと読めない (読まない) 方が多いらしいので、VB で書いてみました)

VB だと読みにくい(読まない…ことはないが)。

# re: 文字列の列挙体 2006/04/04 16:03 中博俊
型付データセットを使えばそれでいいこと
というか型付けないデータセットは使えない

# re: 文字列の列挙体 2006/04/04 16:24 じゃんぬ
> VB だと読みにくい(読まない…ことはないが)

えっと、C# で書く場合と考えると問題のない範囲ですw

> 型付データセットを使えばそれでいいこと

これは正味の DataSet の使い方をしないんですけどね。

中身は格納して決めるんじゃなくて、定数のように決まっていて欲しい。
でも定数とは違って、定数名と中身は同一であって欲しいとか。
確かにあると便利な場面はあります。
たとえば、CrystalReports のヘッダ代わりの式フィールドとかね。

# re: 文字列の列挙体 2006/04/06 10:12 某はいくーぬ
System.Enum.GetNames(GetType(列挙体名))

CType(System.Enum.Parse(GetType(列挙体名), 定数名), 列挙体名)
とかはダメ?

# re: 文字列の列挙体 2006/04/06 10:48 じゃんぬ
> とかはダメ?

これだと、DataSet みたいに ほげ.フィールド1 というスタイルで使用できないですね。

まず、Type を渡すのがあまりに面倒です。
ラップするメソッドを書いたとしても定数名は、
String で固定できるものじゃないですね。
列挙体のようにコンパイル解決したいのが狙いですから。

# re: 文字列の列挙体 2006/04/16 12:43 名無し
ブラジルはこうだww

11 ネイ
10 コインブラ
09 カルロス・サンターナ
08 トニーニョ
07 ザガロ
06 サンタマリア
05 ディウセウ
04 アマラウ
03 ドトール
02 ジェトーリオ
01 ゲルティス

# re: 文字列の列挙体 2006/10/27 4:33 BLUEPIXY
ほげ.フィールド1.ToString();//C#
でダメ?

# re: 文字列の列挙体 2006/10/27 8:58 じゃんぬ
>BLUEPIXY さん
経緯はリンク先の方をご覧ください。
ちなみに、Enum->ToString メソッドは推奨されていないです。
(警告が出ます)

# re: 文字列の列挙体 2006/10/27 17:23 BLUEPIXY
リンク先ざっと見ましたけど、どちらかというと、その後の話みたいでもう一つよく見えませんでした。
要らぬちゃちゃを入れて不快に思われたのならすみません。

# re: 文字列の列挙体 2006/10/27 17:26 BLUEPIXY
ちなみに、
csc for .NET 1.1
csc for .NET 2.0
のどちらも警告はでませんでしたが・

# re: 文字列の列挙体 2006/10/27 17:35 BLUEPIXY
また、MSDNのサンプル
Enum, Enum.ToString
で、実際に使っているサンプルがあり、推奨されないとは書いていませんが・

なんか、MSDNのリンクが書けないですね。
コメントの文字数制限かと思って分断して、削って素っ気なくなってしまいました。

# re: 文字列の列挙体 2006/10/27 19:01 じゃんぬ
BLUEPIXY さん、コメントありがとうございます。

> 要らぬちゃちゃを入れて不快に思われたのならすみません。

いえ、不快には全然思っていないです。
文章だとどうも素っ気無く見えてしまうようです。

> どちらも警告はでませんでしたが

Visual Studio 2005 だと、インテリセンス上に、
「使用しないでください」
と表示されたかと思います。

> また、MSDNのサンプル
> Enum, Enum.ToString
> で、実際に使っているサンプルがあり、推奨されないとは書いていませんが・

ここは、ちょっと誤解があるように思えます。
MSDN ライブラリの使用例などのコードは、自動で生成されたものです。
辻褄のあっていないものはたくさんあります。

私も含め、Microsoft MVP な人が、結構フィードバックしていますよ。

# re: 文字列の列挙体 2006/10/28 2:55 BLUEPIXY
>Visual Studio 2005 だと、インテリセンス上に、「使用しないでください」 と表示されたかと思います。
そうですか、「Visual Studio 2005」環境構築していないので気付きませんでした。しかしまあ、変な話ではありますね。
結局の処、インテリセンスが、推奨されないという根拠なワケですね。
1つ賢くなりました。
ご教授ありがとうございました。
m(_ _)m

# re: 文字列の列挙体 2006/10/28 3:23 BLUEPIXY
>MSDN ライブラリの使用例などのコードは、自動で生成されたものです。
>辻褄のあっていないものはたくさんあります。
間違ったコードが書かれていることがあるというのは、わかります。
だけれども、自動で生成されたからと言って、それを理由にすぐさまそんなのは根拠にならないということにはならないと思います。
自動生成ということは、おそらくテストUnit?みたいなことなんでしょうけど、
例えば、Enum クラスのサンプルを見ると、
WriteLine を使ってフィールド名を(暗黙のToStringで)表示していますが、それは、もちろん、自動生成されたからではなくて、そのような意図(フィールド名が文字列要求されたときにはその名前を返すということのテスト)をもってテスト生成されたということですよね。

# re: 文字列の列挙体 2006/10/28 9:20 じゃんぬ
推奨されていない理由は、FlagAttribute 属性関係を危惧してのことだと思います。
通常は (今は) 問題ないのでしょうけど、CLR の実装が変わればできなくなる可能性もあります。
今現在、すでにインテリセンス上では「使用するな」とまで言われているわけですから。

それと、単一で定義されていないものを ToString メソッドで呼び出せてしまう (普通はしませんが) のも、なるべく避けたいですし、何より、列挙体本来の使い方ではないので、わかりにくいですね。
少なくとも、リフレクションを使った方法よりか推奨されないと考えています。

リフレクションを使った方法では、保証があるのとフィールド名までのパスが明確でわかりやすいのが利点なので、(あとは面白そうだったので) こちらの記事では、これのみを紹介しました。

> そのような意図 をもってテスト生成されたということですよね

そのような意図の結果、間違ったコードを書いていることもありますし、その意図 "自体" が間違っていることさえあります。
今回の件も、インテリセンスとの相違で (というか記述がないだけですが) その片鱗を見せているわけで、結局のところ Microsoft 内でも辻褄が合っていないことは多々あります。
COM Interop 関係とファイナライザの記述も、過去に辻褄があっていませんでした。

# re: 文字列の列挙体 2006/11/01 4:13 BLUEPIXY
ToString("G")
は、どうでしょう?
この場合、列挙型エントリを文字列として(表示できる場合には)作成するので、意味としてははっきりしていると思います。
MSDNの"列挙型書式指定文字列"を読んでみて下さい。
この場合、これが、辻褄が合わないなんとかかんとかというなら、このエントリ自体おかしいと思います。

# re: 文字列の列挙体 2006/11/14 17:11 BLUEPIXY
>Microsoft MVP な人が
ちなみに
Microsoft MVP な人「中 博俊」さんも
その著作「実践C++/CLI 極めるための基礎と実用テクニック」という一般向けの本の中でToStringメソッドで列挙体の列挙子を取得できると書いてます。
(ちなみにということで、コレを使えという意味ではありませんし、だからどうということもありません)

# re: 文字列の列挙体 2006/11/23 19:03 BLUEPIXY
>今現在、すでにインテリセンス上では「使用するな」とまで言われているわけですから。
例えば、VC++で、strcpyとかが、strcpy_s を使用するようにとコンパイラで警告がでることを考えると、
コンパイラで警告がでないインテリセンスのメッセージは(辻褄が合わないと言うより)(推奨や警告ではなく)単なるアドバイスに過ぎないと思います。

# re: 文字列の列挙体 2006/11/23 22:00 中博俊
C#のコンパイラはライブラリに基本的に踏み込みませんから、それはちがうでしょう。

# re: 文字列の列挙体 2006/11/25 2:52 BLUEPIXY
そうなんですか、訂正ありがとうございます。

# re: 列挙型を使う(その5) 2007/03/17 11:46 R.Tanaka.Ichiro's Blog
re: 列挙型を使う(その5)

# re: 文字列の列挙体 2007/03/18 9:57 名無し
> Microsoft MVP な人「中 博俊」さんも

とか言ってるけど、Microsoft MVPな人「じゃんぬねっと」さんに対して言う言葉じゃないね。

それと、こちらのサイト(わんくま同盟さん)は、その中博俊さんとじゃんぬねっとさんによって運営されていることをご存知ないのかしら?

よりによって、対抗馬で中博俊さんを出してくること自体がなんだかな。
会話もかみ合ってないし。

BLUEPIXIさんって、OKWebでも何かとずれてると思っていたけど、こんなところでもずれてるんですね。

# 列挙型を使う(その6) 2007/03/19 10:03 R.Tanaka.Ichiro's Blog
列挙型を使う(その6)

# 列挙型を使う(その6) 2007/03/19 10:07 R.Tanaka.Ichiro's Blog
列挙型を使う(その6)

# re: 文字列の列挙体 2007/03/22 20:35 BLUEPIXY
ずれたことを書くのは本意ではないので、一応一連の私の書込について説明しておくと、私の一連の書込は、記事が云々ということではなくて、「ToStringではだめな根拠は何なの?」ということです。
記事と関連性がないずれたコメントだと思われたならすみませんです。
MVPがどうのこうのというのは、知らなくて言ってるのではなくて、MVPが根拠になるの?ということです。
一連の書込は
「推奨されない」根拠がインテリセンスのメッセージによるなら、そういう開発環境を使っていない人はどうしてそれを知ることができるのかという疑問が根底にあります。
やっぱずれてますかねぇf(^_^;

# re: 文字列の列挙体 2007/05/16 21:10 名無し
>MVPがどうのこうのというのは、知らなくて言ってるのではなくて、MVPが根拠になるの?ということです。

じゃあこの書き込みは何?

>Microsoft MVP な人「中 博俊」さんも
>その著作「実践C++/CLI 極めるための基礎と実用テクニック」という一般向けの本の中でToStringメソッドで列挙体の列挙子を取得できると書いてます。

MVPがどうこう関係ないの反論の意味だったらそう書けばいいのに。
問題なのはフィードバックしてるという事実じゃないの?
別にMVPをかばう意図はないけどさ。

# Stringの名前とデフォルト値を持つ定数 2008/07/05 23:39 katamari.wankuma.com
Stringの名前とデフォルト値を持つ定数

# Stringの名前とデフォルト値を持つ定数 2008/07/05 23:43 katamari.wankuma.com
Stringの名前とデフォルト値を持つ定数

# re: 文字列の列挙体 2009/09/20 12:06 no
http://msdn.microsoft.com/ja-jp/library/16c1xs4z%28VS.80%29.aspx

情報が古くなりつつあるため、この記事を補完する情報の掲載を求めます。

# re: 文字列の列挙体 2012/02/10 3:32 みたらし
はじめまして。
古いお話になんですが、Enum.ToString で非推奨なのは Enum.ToString(IFormatProvider) オーバーロードだけではないでしょうか。

このオーバーロードは、MSDNにも「メモ : このメソッドは、互換性のために残されています。」と記載がありますし、
Visual Studio のツールチップにも「使用しないでください/このメソッドのオーバーロードは今後使用しません」と出ます。
が、他のオーバーロードについては、MSDNにも記載がなければ、ツールチップにも警告が出ていません。

インテリセンスの候補リスト上で ToString を選択したときには確かに警告が出ていますが、
これはデフォルトでツールチップに表示されるのが、よりにもよってこのオーバーロードだからなのでは。

…いかがでしょう?(ちょくちょく使うのでダメであってほしくない立場ですw)

# re: 文字列の列挙体 2012/04/20 19:19 renji
みたらしさんに同感です。
・Enum.ToString(IFormatProvider)
・Enum.ToString(string, IFormatProvider)
このインテリセンスに限り[使用しないでください]と表示されていますので、
ほかのケースであれば、良いと考えております。

# 6 The ninjas turn The book is 0 2020/01/02 3:58 Typicalcat53
http://pgah.hu/2019/11/16/%ef%bb%bf50s-plus-seniors-online-dating-website-no-subscription/ vancouver iranian seniors dating online service https://infirmiere-stelleman-lempereur.fr/no-charge-best-senior-online-dating-services-blogs.wankuma.com.pdf vancouver iranian seniors dating online service https://www.rallyng.it/2019/07/31/%ef%bb%bfmature-dating-online-sites-for-relationships-absolutely-free/ los angeles latino senior dating online service http://takaritas.barzak.hu/highest-rated-seniors-singles-dating-online-site-blogs.wankuma.com.pdf senior dating online services no payment needed

# バッグ,財布&小物専門店 2020/07/18 19:00 vedvkduihl@aol.jp
シャネルのJ12 ヴィンテージの雰囲気に今の気分を取り入れながら、時代に流されないクオリティーの高い服作りを目指す。
受けている1960年代のファッションへの敬愛の気持ちをこめて名づけられたもの。
ベル&ロス(BELL & ROSS)は、「視認性」「信頼性」「高精度」「防水性」の4つのコンセプトに基づいて実用性とデザイン性が組み合わされた、1991年にフランス・パリで創業した 新世代のウォッチブランド。
車検に出すときに正規ディーラーに持っていくと費用や時間がかかり、必要とは思えない部分も新品に取り換えられてがっかりすることがありませんか。
オーバーホールは時計が健康診断を行うようなもので内部の保油性やねじのゆるみ、汚れや汗などによるさびや腐食などについてチェックして修理や部品交換を行うものです。
時計のお修理・メンテナンスもお伺い致しております。
元祖ダイバーズウォッチとしてサブマリーナと双璧を成すフィフティファゾムスは、同時期に登場したサブマリーナと同じく、ダイバーズの方向性を確固たるものとしたモデルです。
が、一時期ブランドを休止。
機械式時計として男心をくすぐるたくさんの魅力が詰まっているのもポイントです。
ベル&ロスは1992年の創業、そしてジンから完全独立したのは2002年の事、つまり創業から30年ほどしかたっていない、時計業界では駆け出しのブランドです。
スポーツブランドのポロシャツにサングラスをして時計はタイメックスの「サファリ」。
文字盤の色を軸に時計をお探しの方は是非ご参考ください。
まずは定番のホワイト文字盤。
ヨットデッキをモチーフにした横ストライプ文字盤にグレーを合わせたスタイリッシュなアクアテラ。
ーキンのような女性。
防水性能はなんと3,000mのプロ仕様。
ブランドの知名度や機能も大切だけど、やっぱり自分の好きなカラーで選びたい!有名ブランドとのコラボレーションを次々とリリース。
ヴィンテージフレームのコレクターとしても有名なベンジャミン・モントーヤがアイウェアブランド「ベンジャミンアイウェア」をスタートする。

バッグ,財布&小物専門店 https://www.cocoejp1.com/ProductDetail.aspx?Id=201903040753516085

# pQyhKkjiPOUPwt 2020/09/28 9:39 https://royalcbd.com/washington-dc/
PdQLq4 Thanks for sharing, this is a fantastic blog post.Thanks Again. Want more.

# nNFTCCbrivZ 2020/10/01 1:19 https://bamnabi.com
Your style is so unique in comparison to other folks I ave read stuff from. I appreciate you for posting when you ave got the opportunity, Guess I will just book mark this web site.

You have brought up a very excellent details , thankyou for the post.

your dаА а?а?ntist to go about the trouble аА аБТ?ight away

# hAULMNaaLzmkx 2020/10/10 8:05 http://ge.tt/6Gw3Mb73/v/0
Very neat blog post.Really looking forward to read more. Awesome.

# dLkszftecPRvuPx 2020/10/10 9:17 https://www.singapore-tattoo.com/
You have made some good points there. I looked on the web to learn more about the issue and found most individuals will go along with your views on this website.

# mQdnxhsbvuo 2020/10/13 1:29 https://authorizedusers.com
pretty practical stuff, overall I imagine this is worthy of a bookmark, thanks

# IeKJzMiXXjPRuq 2020/10/13 2:39 http://als.anits.edu.in/members/thomas05r9/
You have made some good points there. I looked on the net for additional information about the issue and found most individuals will go along with your views on this web site.

# uPYpJqPhGRdJM 2020/10/13 5:01 https://d-tv.tv/what-is-an-m3u-file-and-how-to-ope
Muchos Gracias for your post.Thanks Again. Want more.

you by error, while I was browsing on Askjeeve for something else, Anyhow I am here now and would just like

# dadGjVonOggRmuitWm 2020/10/20 0:39 https://indianbossmatka.com
Very good information. Lucky me I came across your website by chance (stumbleupon). I have book-marked it for later!

There is certainly a great deal to learn about this topic. I like all the points you made.

Some truly wonderful work on behalf of the owner of this web site , absolutely outstanding subject matter.

# GQAifDLZydkbc 2020/10/22 19:57 http://spr112.com/members/singhelium56/activity/82
I think this is a real great blog post.Thanks Again. Keep writing.

# YWtxjFaSnuLCXHLAIgZ 2020/10/27 3:46 https://www.facebook.com/ployways2spendaday
Thanks for the blog post.Thanks Again. click here

This website was how do you say it? Relevant!! Finally I have found something which helped me. Many thanks!

# IlwCLTMJSlOZEFevA 2020/11/04 2:54 http://thenannypool.com/members/singerlunch5/activ
I truly appreciate this post. I ave been looking everywhere for this! Thank goodness I found it on Bing. You have made my day! Thanks again!

# JWkRJytdDKOrbetEV 2020/11/05 1:48 https://www.pinganillovip.es/
The Silent Shard This will possibly be really helpful for a few of your jobs I intend to will not only with my blog site but

# dVmajMiBAiCRyQjfd 2020/11/10 2:28 https://wiki.jdranastasia.com/mediawiki/index.php/
I was recommended this blog by my cousin. I am not sure whether this post is written by him as no one else know such detailed about my problem. You are amazing! Thanks!

# XXoaCXctSiFQeeD 2020/11/11 0:32 https://sites.google.com/site/ipagecouponcodex/
you are saying and the way in which during which you say it.

Pretty! This has been an incredibly wonderful post. Thanks for supplying this information.

# NTNifSceXkyQTPz 2020/11/13 5:49 https://www.apartmentexpertsmovers.com/
Very good info. Lucky me I ran across your website by chance (stumbleupon). I have book marked it for later!

# wyKVRCTmGRlfazd 2020/11/13 7:16 https://www.officeexpertsmovers.com/
Thanks so much for the blog article.Really looking forward to read more. Much obliged.

# IfqKgMnGZVUFDw 2020/11/17 7:46 http://www.hoodwiki.org/index.php?title=User:BobDe
I'а?ve read many excellent stuff here. Unquestionably worth bookmarking for revisiting. I surprise how a great deal try you set to create this sort of great informative internet site.

# wnZGrKmllketvJwKFGv 2020/11/17 11:01 https://celsiusnetwork.medium.com/celsius-successf
Ia??a?аАа?аАТ?а? ve recently started a site, the information you provide on this site has helped me tremendously. Thanks for all of your time & work.

# WlKZssqMIykekKAxPc 2020/11/17 13:46 https://medium.com/@Covesting
You have made some really good points there. I looked on the internet to learn more about the issue and found most individuals will go along with your views on this site.

# HTjApBmKzaenqywzTb 2020/11/18 3:39 http://wiki.tidepools.co/view/User:Udonplecsue
It as difficult to find experienced people about this topic, however, you sound like you know what you are talking about! Thanks

# kGeGKCaGJqOFUnZSCf 2020/11/18 5:09 https://www.mvpplumbingpro.net/
Would you be interested in exchanging links?

# qZXHnQsYcyZIrlwsZB 2020/11/20 12:27 https://www.pedicure.com/members/brandybun60/activ
Simply a smiling visitant here to share the love (:, btw great style and design.

# MbpURblmpBzNYsDD 2020/11/20 13:51 https://cse.google.com.np/url?q=https%3A%2F%2Fbs-e
What is the best technique to search intended for blogs you are concerned in?

# wVcUhPPEPA 2020/11/24 0:28 https://www.shadanatex.com
Thorn of Girl Great info may be uncovered on this world wide web blog site.

Why visitors still use to read news papers when in this technological world everything is accessible on net?

# INqKctyCpVjiGolSm 2020/11/24 3:18 https://images.google.be/url?q=https%3A%2F%2Fwww.b
Thanks for sharing, this is a fantastic post. Keep writing.

# wFmPzveKPEPOTVO 2020/11/24 6:09 http://author24.us
Wow! Thank anyone! I always wanted to write in my blog something similar to that. Can My spouse and i implement a part of your submit to my own site?

# hoKBJUxmoEvXpegw 2020/11/24 7:35 https://shellbass1.doodlekit.com/blog/entry/115541
Wow, amazing blog layout! How long have you been blogging for? you made blogging look easy. The overall look of your website is wonderful, as well as the content!

# VUqRzWuAzSCLCzOd 2020/11/24 11:49 http://customerpolicedepartment.com/members/ownerp
Looking forward to reading more. Great blog.Thanks Again. Much obliged.

# KDeQoWyOFFWOhkyg 2020/11/25 1:13 http://mc-mody.net/index/8-5918
I will immediately grab your rss as I can at find your e-mail subscription link or e-newsletter service. Do you ave any? Please let me know so that I could subscribe. Thanks.

# aeNsCskFumdxPiqNv 2020/11/25 5:37 https://writeablog.net/fallwedge6/sellos-de-caucho
I reckon something truly special in this website.

# JpoaaBwZeuxuRYy 2020/11/25 8:09 http://chernigov.info/member.php?u=73325
some cheap softwares some cheap softwares does not offer good online technical support so i would caution about using them`

# YeAHrqOFRDNfy 2020/11/26 3:23 https://xn------7cdlbddcedhphlkba2c2aekpfki6e2a0y.
This is a set of phrases, not an essay. you are incompetent

# VsRaYjzjBbbJBtKc 2020/11/26 21:37 https://authorizedusers.com/
louis vuitton for sale louis vuitton for sale

This website was how do you say it? Relevant!! Finally I have found something that helped me. Thanks!

# CscfOummiGxUXAooT 2020/11/27 19:50 https://drmitrulescu.ro
Some times its Some times its a pain in the ass to read what blog owners wrote but this site is rattling user friendly !.

# UloDqOfGNZjiGcYmuG 2020/11/27 21:09 https://bookmarks4.men/story.php?title=giay-bong-d
Very informative article post.Really looking forward to read more. Keep writing.

# yuiHqbYrOAqfLM 2020/11/28 6:07 http://www.rollingzone.com.au/forum/members/estitt
loves can you say that about?) louis vuitton hlouis vuitton handbags replicabags replica it as back this fall in mouth watering chocolate. How can you go wrong

# XVuqWNwyiD 2020/12/05 17:35 https://art-template.com
Since the admin of this web page is working, no question very soon it will be well-known, due to its quality contents.|

# FmhQLhwbvJZFFJySj 2020/12/05 18:45 http://justpep.com/diy/salesforce-crm-development-
I will immediately take hold of your rss feed as I can not in finding your e-mail subscription link or newsletter service. Do you ave any? Kindly let me recognize so that I could subscribe. Thanks.

# AMSSvdStazPgdYd 2020/12/07 20:11 https://bsdcity.id/category/tabebuya/
know who you might be but definitely you are going to a well-known blogger when you are not already.

# GsZZZuqrPoQM 2020/12/08 2:44 https://kbi.marketing/pay-per-click-advertising/
This can be exactly what I had been searching for, thanks

# kmNjlPvXExcLfwgaBf 2020/12/08 8:56 https://www.talktopaul.com/south-pasadena-real-est
You made some good points there. I looked on the internet for the topic and found most people will approve with your website.

# XKuaPqRTeXAZjdSnTBo 2020/12/08 10:01 https://www.talktopaul.com/west-Hollywood-real-est
Your style is really unique in comparison to other people I have read stuff from. I appreciate you for posting when you ave got the opportunity, Guess I will just bookmark this web site.

# bcOnxMwqkEysjC 2020/12/08 11:01 https://www.talktopaul.com/san-gabriel-real-estate
Really informative blog.Really looking forward to read more. Keep writing.

# ivsUUbBUmQwSv 2020/12/08 12:57 https://images.google.com.vn/url?sa=https%3A%2F%2F
There is definately a great deal to find out about this topic. I like all of the points you have made.

# GGoRaVHmfQKQRymah 2020/12/09 2:13 https://pasteshr.com/27fptwktyW
Really informative post.Really looking forward to read more. Want more. here

# CVJShULtJuQceiEWAex 2020/12/09 19:38 https://coreys-network.com/blog/view/11648/health-
I think other website proprietors should take this site as an model, very clean and excellent user friendly style and design, as well as the content. You are an expert in this topic!

# StaWGzPCUQim 2020/12/09 19:58 http://chancecap4.nation2.com/benefits-associated-
Thanks so much for the post.Thanks Again. Keep writing.

# ikleIYVzNSuGVRFBQ 2020/12/09 21:21 http://forum.tvfool.com/member.php?u=1318036
I truly appreciate this article post. Really Great.

# JdxLLkZzvzSqXaITSvE 2020/12/09 23:02 https://www.amresponse.com/
It as hard to come by educated people for this topic, but you sound like you know what you are talking about! Thanks

# sbBaTrfPrNGJSp 2020/12/10 0:03 https://www.aqueduct-plumbing.com/
time and actual effort to produce a good article but what can I say I procrastinate a

# vQTBujDfxIC 2020/12/10 2:04 https://artxsi.com/
Thanks-a-mundo for the post.Thanks Again. Really Great.

# ovLtoUqGsqse 2020/12/10 3:04 https://www.a1servicesca.com/
Woh Everyone loves you , bookmarked ! My partner and i take issue in your last point.

# ZVTWQhXvMVZg 2020/12/10 5:24 http://mc-mody.net/index/8-6040
The political landscape is ripe for picking In this current political climate, we feel that there as simply no hope left anymore.

# qAtQuclyCLp 2020/12/10 19:18 http://faryod.com/index/8-19379
Thanks for the blog.Much thanks again. Awesome.

# KVxUJUPMDhFywOfD 2020/12/10 21:58 https://google.com.sl/url?q=https%3A%2F%2Fsvise.co
When are you going to post again? You really entertain a lot of people!

This is one awesome post.Really looking forward to read more. Much obliged.

# UHoFpeahbxlXaVS 2020/12/11 3:03 http://mc-mody.net/index/8-10943
Pretty! This was a really wonderful article. Thanks for supplying these details.|

# aRxWBNLliUrMxRW 2020/12/15 0:04 https://penzu.com/public/45384f99
Im thankful for the article. Keep writing.

# DTFpmxuYtne 2020/12/15 6:26 http://mc-mody.net/index/8-10932
Many thanks for sharing this excellent write-up. Very inspiring! (as always, btw)

# emgItKQtxQQiDbNFJ 2020/12/15 9:34 https://www.reddit.com/user/VeterinarianTiny3609/c
Major thankies for the blog post.Really looking forward to read more. Will read on...

# SZGUlREkCJIVTvw 2020/12/15 18:57 http://mc-mody.net/index/8-8909
louis vuitton outlet sale should voyaging one we recommend methods

wow, awesome article post.Much thanks again. Awesome.

# MiKTaEVnGrVibbS 2020/12/16 20:30 https://ufahunter.net/
Would you be occupied with exchanging hyperlinks?

# EpwpYQjUSAiNekcFQ 2020/12/16 22:43 https://canvas.umn.edu/eportfolios/5095/Home/10_fo
It as not that I want to copy your web-site, but I really like the design and style. Could you let me know which theme are you using? Or was it custom made?

# suTtwZfvkQkxPD 2020/12/16 23:47 https://hometownhomedecor.com/members/shrimptrial7
Right away I am going away to do my breakfast, later than having my breakfast coming over again to read more news.

wow, awesome post.Thanks Again. Really Great.

# xFUrHEewuJtVOY 2020/12/17 5:13 https://canvas.umn.edu/eportfolios/4522/Home/Buy_T
It as hard to find experienced people in this particular topic, but you seem like you know what you are talking about! Thanks

# EAjxmVvGCEuRuE 2020/12/17 6:19 https://scalar.usc.edu/works/edifications/simple-m
thanks for sharing source files. many thanks

# DKslhoIMUjtXREZF 2020/12/17 7:25 https://multiniche.mystrikingly.com/blog/get-in-to
There is definately a great deal to know about this topic. I really like all of the points you made.

# pasipLrTatmdRg 2020/12/17 9:39 http://ideate.xsead.cmu.edu/discussion/introductio
me. Anyhow, I am definitely glad I found it and I all be bookmarking and checking back often!

I value the blog article.Really looking forward to read more. Keep writing.

# GBnMhvLMgrFxPQbMz 2020/12/17 20:49 https://sportbookmark.stream/story.php?title=maina
It as exhausting to search out educated folks on this subject, however you sound like you recognize what you are speaking about! Thanks

# lZXNDSXrLSgYoXWvlBO 2020/12/17 22:18 https://ko-fi.com/post/Want-to-Buy-More-Real-Twitt
yay google is my queen helped me to find this outstanding internet site !.

Lovely blog! I am loving it!! Will come back again. I am bookmarking your feeds also

# roQmsmRsTyHVF 2020/12/18 23:59 https://www.sisteme-de-copiat.ro
Thanks a lot for the post. Keep writing.

# wSOZWrNwXQYQH 2020/12/19 2:18 https://medium.com/@firstoneseo3h/get-in-touch-wit
Utterly indited written content , regards for information.

# quPfnMQSVSvkG 2020/12/19 4:35 https://scalar.usc.edu/works/edifications/convert-
This blog inspired me to write my own blog.

# FIMUqKHoXNzcKKbwY 2020/12/21 20:45 https://medium.com/@firstoneseo5h/buy-youtube-view
Perfectly written content, Really enjoyed studying.

# uYEMrzTVmYaNP 2020/12/22 3:33 https://toolbarqueries.google.lt/url?q=http://www.
It as difficult to It as difficult to find knowledgeable folks with this topic, however you sound like do you know what you are dealing with! Thanks

# SLbOBfohSPgOlaeJGaX 2020/12/22 10:22 http://wealthcellar6.nation2.com/internet-gain-acc
Looking forward to reading more. Great article.Really looking forward to read more. Really Great.

# EVmSBCMpVTQcFAtw 2020/12/22 10:37 https://www.0629.com.ua/list/263740
with? I am having some small security issues with my latest blog and I would like to find something

# pvICkZRmQgaX 2020/12/23 21:15 https://penzu.com/public/90dd9fca
I truly appreciate this blog article.Thanks Again. Awesome.

# MkKgauFbZAC 2020/12/24 8:26 http://hamishgoff.bravesites.com/
Wow, awesome blog layout! How long have you been blogging for? you made blogging look easy. The overall look of your website is great, as well as the content!

# NmbguMdlTnOyXmOkf 2020/12/24 8:35 http://wordsfromnerds.net/members/nephewnoise49/ac
Wow, fantastic blog layout! How long have you been blogging for? you make blogging look easy. The overall look of your web site is wonderful, as well as the content!

# svtAPLdubbybzcKFlC 2020/12/24 9:07 https://gorod-lugansk.com/user/dogkettle93/
The very best and clear News and why it means lots.

pretty handy stuff, overall I feel this is worth a bookmark, thanks

# ZYHspeCbJToVRKYEWDS 2020/12/24 11:00 http://postresconchocolate.com/easy-access-to-affo
Thanks for sharing, this is a fantastic blog article.Thanks Again. Really Great.

# HjFqiGCaJHwnfAUKUKx 2020/12/24 14:23 http://cse.google.co.bw/url?q=https://hostingrevie
Very good blog post. I definitely love this site. Stick with it!

# OutMCwxXfqkB 2020/12/24 16:24 http://cse.google.bi/url?q=https://cryptotradingwa
Normally I really do not study post on blogs, but I must say until this write-up really forced me to try and do thus! Your creating style continues to be amazed us. Thanks, very wonderful post.

# uaOqkHqlVC 2020/12/24 20:59 https://genius.com/wealthdelete38
Some times its a pain in the ass to read what blog owners wrote but this web site is real user friendly!

# zvjQsYONLFLuEfyeCY 2020/12/25 17:21 http://dylanshad.com/blog/members/friendelbow71/ac
The Birch of the Shadow I feel there could be considered a couple duplicates, but an exceedingly handy listing! I have tweeted this. A lot of thanks for sharing!

# ikrYhdiFMSFdRWysv 2020/12/25 18:30 https://medium.com/guestpostseo24/how-to-get-free-
I was suggested this web site by my cousin. I am not sure whether this post is written by him as no one else know such detailed about my trouble. You are incredible! Thanks!

# dGRothBsLlwq 2020/12/25 23:23 http://forum.tvfool.com/member.php?u=1326872
Thanks a lot for sharing this with all of us you actually know what you are talking about! Bookmarked. Kindly also visit my website =). We could have a link exchange arrangement between us!

# SfCewITPqDxsiMcap 2020/12/26 8:19 https://multipekar.ru/forum4/member.php?u=56402
Woman of Alien Ideal get the job done you might have accomplished, this page is de facto neat with excellent info. Time is God as technique for holding all the things from taking place directly.

# meavmzGefdziTA 2020/12/26 9:28 https://www.mdnphoto.com/manfaat-bermain-taruhan-j
Wow, fantastic movie porn child weblog structure! How long have you ever been running a blog for? you make blogging glance easy. The entire glance of your website is great, as well as the content!

# eunicesildenafilcitrate.com 2021/04/03 21:25 generic sildenafil us
sildenafil cost https://eunicesildenafilcitrate.com/ sildenafil prescription discount

Post Feedback

タイトル
名前
Url:
コメント: