0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

UiPath:比較(.CompareTo()メソッド)の話

Last updated at Posted at 2020-07-16

皆もすなるQiitaといふものを、儂もしてみむとてするなり。

と言う訳で、こん**は!はなっち!です。

開発を進めていくと、条件分岐で処理の流れを制御しますね?この場合、下図にあるように、「条件分岐」アクテイビティとか、「フロー条件分岐」アクテイビティ中のConditionに条件を書いていくわけです。

image.png

まぁ、比較に関して言うと、一般的に以下の状態があるわけでして。。。

状態 別表現 記述
AはBより大きい 大(だい)なり A>B
AはB以上 大なりイコール A>=B
AはBと一致 イコール A=B
AはB以下 小なりイコール A<=B
AはBより小さい 小(しょう)なり A<B
AはBと不一致 不一致 A!=B

こんな書き方で、True状態、False状態を判断していくわけですね。

一方、.Netの多くの型には**.CompareTo()**ってメソッドがあり、これはAとBとの状態を、Int32の値として返却してくれる訳です。

参考:Int32.CompareTo メソッド

**.CompareTo()**メソッドでの記述は、その状態を返却するだけなので、実際にはその状態を表した返却値を評価しなければならない訳で。それが「>」とか「<=」と違ってパッと見て分かりにくい!(私見)
ちょっと書いてみると、、、

A.CompareTo(B) 返却値 意味合い 記述
AはBより大きい 1 A>B A.CompareTo(B).Equals(1)
AはBと一致 0 A=B A.CompareTo(B).Equals(0)
AはBより小さい -1 A<B A.CompareTo(B).Equals(-1)

しかも、「大なりイコール」などのイコール系、不一致なんてのは、補集合の考えを使っていかないとならないわけで、ちょっとしたパニックになる訳です(私見)。

※ちょっとした自分の備忘録ですな。最早。。。

A.CompareTo(B) 返却値 意味合い 記述
AはBより大きい 1 A>B A.CompareTo(B).Equals(1)
AはB以上(AはBより小さくない)              A>=B Not A.CompareTo(B).Equals(-1)
AはBと一致 0 A=B A.CompareTo(B).Equals(0)
AはB以下(AはBより大きくない) A<=B Not A.CompareTo(B).Equals(1)
AはBより小さい -1 A<B A.CompareTo(B).Equals(-1)
AはBと不一致(AはBと一致しない) A!=B Not A.CompareTo(B).Equals(0)

実際にUiPathで簡単なシーケンスを組んで、ログからExcelにまとめて見ました。
image.png

まとまった表になって、ちょっとは分かりやすくなりました?(^・^)

おわりに

いかがでした?
.CompareTo()での返却値を.Equels()で評価して。。。況してNotを使わなければってとこが、未だに理解しにくく、いっそ等号、不等号で記述しちゃおうか。。。と思っています。実は、.CompareTo()を使うときは、未だに「Aは、Bよりぃ???」って声に出しつつ記述していて、決して人には聞かれたくない、見られたくない比較の実装ですね(^・^)
是非UiPathでのロボ開発の一助になればと思っています。

ありがとうございました!

2020/7/16 公開早々、誤字がありました。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?