探検
ふらっと C#,C♯,C#(初心者用) Part129 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワキゲー MMff-S7v4)
2017/06/09(金) 18:36:01.72ID:lNiKtgPwM「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part128
http://mevius.2ch.net/test/read.cgi/tech/1493730340/
■関連スレ
C#, C♯, C#相談室 Part94 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1492843013/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
---
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
255デフォルトの名無しさん (ブーイモ MMaf-mug2)
2017/06/18(日) 18:01:08.18ID:kXxrIi51M256デフォルトの名無しさん (アウアウイー Saeb-jmzv)
2017/06/18(日) 18:22:19.50ID:CKbpnobma いやいや、「ラッパー」って言葉を誤用している点を除けば質問者の>>254の方が正しいからw
現実のほとんどの実装ではIEnumerator.MoveNextは
IEnumerator<T>.MoveNextをそのまま呼ぶだろうけど、
やろうと思えば別の実装をすることだって可能に決まってる
現実のほとんどの実装ではIEnumerator.MoveNextは
IEnumerator<T>.MoveNextをそのまま呼ぶだろうけど、
やろうと思えば別の実装をすることだって可能に決まってる
257デフォルトの名無しさん (アウアウウー Sa77-VgqF)
2017/06/18(日) 18:40:25.49ID:jItXXYfIa >>254
素直に考えてほしい
@で iに入れたのはジェネリック版
A movenextはジェネリックでも非ジェネリックでも共通
>>256
残念だけどこれを読むように
https://msdn.microsoft.com/ja-jp/library/78dfe2yb(v=vs.110).aspx
素直に考えてほしい
@で iに入れたのはジェネリック版
A movenextはジェネリックでも非ジェネリックでも共通
>>256
残念だけどこれを読むように
https://msdn.microsoft.com/ja-jp/library/78dfe2yb(v=vs.110).aspx
258デフォルトの名無しさん (アウアウイー Saeb-jmzv)
2017/06/18(日) 18:57:24.62ID:CKbpnobma259デフォルトの名無しさん (ワッチョイ efe0-LlRF)
2017/06/18(日) 19:03:33.17ID:dIx7/lbV0 共通って言うとなんか分かりづらい
オーバーライドなんて257は一言も言ってないようだが…
interface IEnumerator {
object Current { get; }
bool MoveNext();
void Reset();
}
interface IEnumerator<T> : IEnumerator, IDisposable {
new T Current { get; }
void Dispose();
}
IEnumerator<T>自体はMoveNextを定義しない
派生元のMoveNextをそのまま公開する
なので、IEnumerator<T>の実装はこんなんになる
class HogeEnumerator : IEnumerator<T> {
public T Current { get { 略 } }
object IEnumerator.Current { get { return this.Current; } }
public bool MoveNext() { 略 }
public void Dispose() { 略 }
}
なので、
IEnumerator<T> ia = obj.GetEnumerator();
IEnumerator ib = obj.GetEnumerator();
iaでもibでも同じMoveNextが呼び出される
オーバーライドなんて257は一言も言ってないようだが…
interface IEnumerator {
object Current { get; }
bool MoveNext();
void Reset();
}
interface IEnumerator<T> : IEnumerator, IDisposable {
new T Current { get; }
void Dispose();
}
IEnumerator<T>自体はMoveNextを定義しない
派生元のMoveNextをそのまま公開する
なので、IEnumerator<T>の実装はこんなんになる
class HogeEnumerator : IEnumerator<T> {
public T Current { get { 略 } }
object IEnumerator.Current { get { return this.Current; } }
public bool MoveNext() { 略 }
public void Dispose() { 略 }
}
なので、
IEnumerator<T> ia = obj.GetEnumerator();
IEnumerator ib = obj.GetEnumerator();
iaでもibでも同じMoveNextが呼び出される
260デフォルトの名無しさん (アウアウウー Sa77-VgqF)
2017/06/18(日) 19:06:45.73ID:jItXXYfIa >>258
誰もそんなことについて言ってるのではないよ
トンチンカンなレスありがとう
MoveNextは別々に必要ない
そもそもシグネチャーは一個だけだから
必要なのは一個だけだと言うこと
さっきのページの変な訳を見てよく考えてほしい
誰もそんなことについて言ってるのではないよ
トンチンカンなレスありがとう
MoveNextは別々に必要ない
そもそもシグネチャーは一個だけだから
必要なのは一個だけだと言うこと
さっきのページの変な訳を見てよく考えてほしい
261デフォルトの名無しさん (アウアウイー Saeb-jmzv)
2017/06/18(日) 19:09:56.48ID:CKbpnobma262デフォルトの名無しさん (アウアウイー Saeb-jmzv)
2017/06/18(日) 19:11:42.21ID:CKbpnobma しかしあれだ、「ほとんどの実装でそうなっている」ことと、「必然的にそうなりそれ以外の実装はありえない」
ことの区別のつかないレベルの人が偉そうに回答する側に回ってはダメだと思うw
ことの区別のつかないレベルの人が偉そうに回答する側に回ってはダメだと思うw
263デフォルトの名無しさん (アウアウウー Sa77-VgqF)
2017/06/18(日) 19:11:59.22ID:jItXXYfIa >>261
さっきのページの説明とコードをぜひ読んでほしい
さっきのページの説明とコードをぜひ読んでほしい
264デフォルトの名無しさん (ワッチョイ ba66-VgqF)
2017/06/18(日) 19:17:16.07ID:Hoh12jc00 >>254
まずコードの見た目と挙動が異なるのはyieldが糖衣構文で>>252が言うように
IEnumerator<T>を実装するクラスをコンパイラが生成してコードがすり替わるから
これはジェネリック云々とはまた別の話、ILSpy等で糖衣構文のデコンパイルをオフにして見てみると良い
私がラッパーと書いたのはIEnumerable.GetEnumerator()の話で、そのコードでは呼び出されていない
これは((IEnumerable)collection).GetEnumerator()などとしてIEnumerable型でコールされた時に呼び出されるだけのもの
仮にそう書いたとしてもyieldで実装されたIEnumerator<T>メソッドへ投げているので、結局iの中身はIEnumerator<T>
あとは中身のIEnumerator<T>がIEnumerator型で操作された時の実装による、明示的なインターフェイスの実装があればそれが呼ばれる
まずコードの見た目と挙動が異なるのはyieldが糖衣構文で>>252が言うように
IEnumerator<T>を実装するクラスをコンパイラが生成してコードがすり替わるから
これはジェネリック云々とはまた別の話、ILSpy等で糖衣構文のデコンパイルをオフにして見てみると良い
私がラッパーと書いたのはIEnumerable.GetEnumerator()の話で、そのコードでは呼び出されていない
これは((IEnumerable)collection).GetEnumerator()などとしてIEnumerable型でコールされた時に呼び出されるだけのもの
仮にそう書いたとしてもyieldで実装されたIEnumerator<T>メソッドへ投げているので、結局iの中身はIEnumerator<T>
あとは中身のIEnumerator<T>がIEnumerator型で操作された時の実装による、明示的なインターフェイスの実装があればそれが呼ばれる
265デフォルトの名無しさん (ブーイモ MMaf-mug2)
2017/06/18(日) 19:24:09.26ID:m3bZs4wLM266デフォルトの名無しさん (アウアウイー Saeb-jmzv)
2017/06/18(日) 19:33:21.57ID:CKbpnobma267デフォルトの名無しさん (ワッチョイ 536e-mug2)
2017/06/18(日) 19:39:39.80ID:ppLsekVC0268デフォルトの名無しさん (ワッチョイ 536e-mug2)
2017/06/18(日) 19:59:37.67ID:ppLsekVC0269240 (ワッチョイ 8bbe-2WTa)
2017/06/18(日) 20:45:02.93ID:3NNsYvIS0 質問者です。
>>264
>>251でラッパーと書いていただいた意図を取り違えてました。失礼しました。
-----
「MoveNextの実装は単一で共通」という点についても、理解できたと思います。
IEnumeratorとIEnumerator<T>で MoveNext()のシグネチャは共通であり、処理内容的にも
イテレータをひとつ進めるだけなので、わざわざ(明示的に実装するなどして)2つを別々に作る意味はない。
現に、yieldで自動生成されるMoveNext()も、共通のメソッドになっている。
…ということですね。
皆さんのおかげで、今回の質問はほぼ解決できたような気がします。
どうもありがとうございました。
# それにしても、「C#はシンプルだから初心者にもわかりやすい」とか聞いたことがありますが、
# 実際にはずいぶん難しいですね。
# 特に「インターフェイス」が苦手です…。
>>264
>>251でラッパーと書いていただいた意図を取り違えてました。失礼しました。
-----
「MoveNextの実装は単一で共通」という点についても、理解できたと思います。
IEnumeratorとIEnumerator<T>で MoveNext()のシグネチャは共通であり、処理内容的にも
イテレータをひとつ進めるだけなので、わざわざ(明示的に実装するなどして)2つを別々に作る意味はない。
現に、yieldで自動生成されるMoveNext()も、共通のメソッドになっている。
…ということですね。
皆さんのおかげで、今回の質問はほぼ解決できたような気がします。
どうもありがとうございました。
# それにしても、「C#はシンプルだから初心者にもわかりやすい」とか聞いたことがありますが、
# 実際にはずいぶん難しいですね。
# 特に「インターフェイス」が苦手です…。
270デフォルトの名無しさん (ワンミングク MMaa-QeqB)
2017/06/18(日) 20:52:35.39ID:LYHl+wocM シンプルってのはC言語みたいな言語の事を言うんだよ
C#は安全性や生産性が売りの言語であってシンプルが売りではない
C#は安全性や生産性が売りの言語であってシンプルが売りではない
271デフォルトの名無しさん (スフッ Sdda-h/Mr)
2017/06/18(日) 20:54:56.71ID:2ZvXTc7Xd たまにScheme使ってる身からするとC言語なんて複雑性の塊でしかない
272デフォルトの名無しさん (アウアウウー Sa77-VgqF)
2017/06/18(日) 20:55:04.82ID:4KNX7P10a273デフォルトの名無しさん (アウアウイー Saeb-YD8M)
2017/06/18(日) 21:09:54.93ID:wcAf0alPa こんな難しい動作するコードは駄目だってことだね
274デフォルトの名無しさん (ワッチョイ fac4-N71/)
2017/06/18(日) 21:26:40.66ID:gBGY/PYC0 言語仕様がシンプルって触れ込みで本当にシンプルなものにはお目にかかったことがない
brainfuckくらいかな
go、てめーは特に駄目だ
落とし穴ばっかり掘りまくりやがって
brainfuckくらいかな
go、てめーは特に駄目だ
落とし穴ばっかり掘りまくりやがって
275デフォルトの名無しさん (ワッチョイ 874b-4n6v)
2017/06/19(月) 00:15:22.74ID:Ww5nR0aW0 enumerator は、.NET Framework 1の設計ミスと、それを取り繕う互換性維持のためだけのダーティーコードが分かりにくくしているだけ。
276デフォルトの名無しさん (アウアウイー Saeb-jmzv)
2017/06/19(月) 00:34:16.82ID:9HdiQdA0a ただのIteratorパターンを分かりにくいって言われてもw
ジェネリックのない.NET1.xの段階でリリースしたのは「戦略ミス」だったんじゃないのかって言いたいのなら
それはそうかもしれないけど
ジェネリックのない.NET1.xの段階でリリースしたのは「戦略ミス」だったんじゃないのかって言いたいのなら
それはそうかもしれないけど
277デフォルトの名無しさん (アウアウイー Saeb-YD8M)
2017/06/19(月) 01:09:51.49ID:hwxIPu2Ga 言い訳はいい
初見ではクソコード確定
初見ではクソコード確定
278デフォルトの名無しさん (アウアウイー Saeb-jmzv)
2017/06/19(月) 01:37:01.54ID:EFIc9SHVa >>277
気づいてないみたいだけど、まさにそういう自己正当化のことを「言い訳」っていうんだよw
気づいてないみたいだけど、まさにそういう自己正当化のことを「言い訳」っていうんだよw
279デフォルトの名無しさん (アウアウイー Saeb-YD8M)
2017/06/19(月) 01:58:13.06ID:0T6aPzZoa ウンコードの相手をしてる暇はない
280デフォルトの名無しさん (ワッチョイ 4f96-2WTa)
2017/06/19(月) 02:47:34.68ID:y5kZlHZm0 コンボボックスのアイテムを他のコンボボックスに書き換える方法
これより簡単な方法って存在しますか?
for (int j = 0; j <= combobox1;.Items.Count-1; j++)
{
combobox2..Items.Add(combobox1.Items[j]);
}
これより簡単な方法って存在しますか?
for (int j = 0; j <= combobox1;.Items.Count-1; j++)
{
combobox2..Items.Add(combobox1.Items[j]);
}
281デフォルトの名無しさん (ワッチョイ efe0-LlRF)
2017/06/19(月) 08:54:35.24ID:cIn3xoah0 バインディングしてるなら
comboBox2.ItemsSource = comboBox1.ItemsSource;
とかでもいけるけど
comboBox2.ItemsSource = comboBox1.ItemsSource;
とかでもいけるけど
282デフォルトの名無しさん (ワッチョイ efe0-LlRF)
2017/06/19(月) 08:55:26.22ID:cIn3xoah0 ItemsSourceじゃなかったDataSourceだった
283デフォルトの名無しさん (ワッチョイ ba44-pA8U)
2017/06/19(月) 12:50:45.81ID:EUrvQ/BA0 まずfor文を使うのをやめて
284デフォルトの名無しさん (アウアウウー Sa77-VgqF)
2017/06/19(月) 12:56:04.01ID:VCAPf4jOa その前にc#ではないなw
285デフォルトの名無しさん (ワッチョイ 8706-nAjB)
2017/06/19(月) 18:19:56.58ID:I4SWBMMg0 GroupByするのですが、ソートした結果がほしいのです。どうすればいいでしょうか??
例えば、Personクラスがあります。
class Person { public string FirstName, public string LastName }
LastNameでグループ化しますが、persons.GroupBy(p => p.LastName);
この各グループ内でfirstNameでソートした状態でグループ化したいのです。
例えば、Personクラスがあります。
class Person { public string FirstName, public string LastName }
LastNameでグループ化しますが、persons.GroupBy(p => p.LastName);
この各グループ内でfirstNameでソートした状態でグループ化したいのです。
286デフォルトの名無しさん (アウアウイー Saeb-jmzv)
2017/06/19(月) 18:39:44.95ID:DpavZgQja >グループ内の要素は、source に出現する順序で返されます。
とあるから、GroupByする前にfirstNameでソートしておけばいいんじゃないの?
https://msdn.microsoft.com/ja-jp/library/bb534501(v=vs.100).aspx
とあるから、GroupByする前にfirstNameでソートしておけばいいんじゃないの?
https://msdn.microsoft.com/ja-jp/library/bb534501(v=vs.100).aspx
287デフォルトの名無しさん (アウアウカー Sa33-yC4D)
2017/06/19(月) 18:40:02.10ID:P6DFew9Aa 先にfirstNameでソートしてからGroupByすればいい
GroupByは元の順序を変えないから
GroupByは元の順序を変えないから
288デフォルトの名無しさん (ワッチョイ 8706-nAjB)
2017/06/19(月) 20:00:39.81ID:I4SWBMMg0289デフォルトの名無しさん (ドコグロ MM32-p9VS)
2017/06/19(月) 22:12:58.54ID:gggoijwOM 業務系のアプリ作るときって、
例外処理どれくらいやるのですか?
個人だとざっくり例外キャッチしときゃいいやみたいな感じだけど、このケースはこういう可能性があるとか全部考慮しないといけない?
例外処理どれくらいやるのですか?
個人だとざっくり例外キャッチしときゃいいやみたいな感じだけど、このケースはこういう可能性があるとか全部考慮しないといけない?
290デフォルトの名無しさん (ワッチョイ 536e-mug2)
2017/06/19(月) 22:26:10.29ID:l5+Ht5Lo0 例外処理で最も大事なのは例外を漏らさないことではなくどこで例外を漏らしても問題のない作りにすること
それを徹底してさえいれば例外は最終的に一番上のイベントハンドラでキャッチしたりWebならフレームワーク任せにしても基本的に問題ないはず
それをあえて例外の発生源により近い場所で処理するのは、あくまでユーザーの利便性を高めるためのオプションであって、それが必須であってはいけない
それを徹底してさえいれば例外は最終的に一番上のイベントハンドラでキャッチしたりWebならフレームワーク任せにしても基本的に問題ないはず
それをあえて例外の発生源により近い場所で処理するのは、あくまでユーザーの利便性を高めるためのオプションであって、それが必須であってはいけない
291デフォルトの名無しさん (アウアウイー Saeb-jmzv)
2017/06/19(月) 22:41:39.10ID:DpavZgQja >>289
必要に応じて、としか言いようがないのでは?w
なんか無駄にハッスルして(笑)例外処理にこっちゃう人がたまにいるけど、
ぶっちゃけそれでプログラムの本来の効用が上がるわけじゃないんから必要以上に凝るのは
バカげてるとは言えると思う
必要に応じて、としか言いようがないのでは?w
なんか無駄にハッスルして(笑)例外処理にこっちゃう人がたまにいるけど、
ぶっちゃけそれでプログラムの本来の効用が上がるわけじゃないんから必要以上に凝るのは
バカげてるとは言えると思う
292デフォルトの名無しさん (ブーイモ MMda-mug2)
2017/06/19(月) 22:56:05.74ID:n8yR7uvJM 例外はトップダウンで考えるのが効率よく堅牢なソフトウェアを作るコツ
上の方でまとめてリトライすりゃ済むんなら下で細かいケースをいちいち個別に考慮する必要はない
上の方でまとめてリトライすりゃ済むんなら下で細かいケースをいちいち個別に考慮する必要はない
293デフォルトの名無しさん (ワンミングク MMaa-QeqB)
2017/06/20(火) 00:28:55.36ID:0dk+Bj02M 例外は呼び出しルートでメッセージに変換して出力
要件で明確にこういう障害の時はこうすると決まっていない限りは絶対に個別に処理してはならない
仕様で決まっていないのに処理するということは例外を握りつぶすことと同じだ
要件で明確にこういう障害の時はこうすると決まっていない限りは絶対に個別に処理してはならない
仕様で決まっていないのに処理するということは例外を握りつぶすことと同じだ
294デフォルトの名無しさん (ドコグロ MMa7-p9VS)
2017/06/20(火) 08:11:57.37ID:OLNd26fgM ありがとうございます。
例外のメッセージ出されても意味分からないから、分かりやすいメッセージにしろとか、考慮不足なんじゃないのって言われて、まじか、想定できる箇所全部処理させる気か!?みたいな
例外のメッセージ出されても意味分からないから、分かりやすいメッセージにしろとか、考慮不足なんじゃないのって言われて、まじか、想定できる箇所全部処理させる気か!?みたいな
295デフォルトの名無しさん (ワッチョイ e3e2-N71/)
2017/06/20(火) 09:47:17.68ID:GRs2Ke5S0 golangはそういう思想で作られてるな
あれは偏執的過ぎる気がするが
あれは偏執的過ぎる気がするが
296デフォルトの名無しさん (ブーイモ MMda-mug2)
2017/06/20(火) 12:24:05.26ID:iIE7QTSfM 日本人は末端から考えるのが好きだから、例外をその場で全て個別に適切に処理しようとしてコードが膨れ上がり
握り潰しだらけでデバッグ不能なゴミが出来上がることが多いよね
未だにJavaの検査例外を有効であると信じてる人も多いし
握り潰しだらけでデバッグ不能なゴミが出来上がることが多いよね
未だにJavaの検査例外を有効であると信じてる人も多いし
297デフォルトの名無しさん (アウアウイー Saeb-jmzv)
2017/06/20(火) 12:46:21.09ID:ghFCA5oRa むしろ集約例外ハンドラ使えとかなるべく呼び出し階層の上の方で処理しろって言ってる奴を見たら、
ああこいつは何も分かってないなと判断して眉にツバして話を聞くことを勧めるw
ああこいつは何も分かってないなと判断して眉にツバして話を聞くことを勧めるw
298デフォルトの名無しさん (ワッチョイ e354-N71/)
2017/06/20(火) 14:28:33.32ID:qSWxsRTn0 >>297
ついでに目玉と心臓も潰して電車に飛び込んで死ね単芝
ついでに目玉と心臓も潰して電車に飛び込んで死ね単芝
299デフォルトの名無しさん (ワッチョイ c7c0-ehp2)
2017/06/20(火) 16:45:59.98ID:EFljh2yC0 Windows10での話なんですが、
フォームの左上とクライアント領域の左上の差を取得しようとPointToClient(Location)を実行するとおかしな値を返してきます
具体的にはフォームの外枠は1pxでタイトルバーの高さが31pxなので(-1, -31)を返さないとおかしいはずなんですが、(-8, -31を)を返してきます
(これはVSのデザイナなどで表示されてるWindowsベーシックスタイルのタイトルバー高さ、枠の幅なので多分そちらが返ってきているのではと思ったのですが)
表示されている状態に沿った値を取得する方法はないでしょうか
フォームの左上とクライアント領域の左上の差を取得しようとPointToClient(Location)を実行するとおかしな値を返してきます
具体的にはフォームの外枠は1pxでタイトルバーの高さが31pxなので(-1, -31)を返さないとおかしいはずなんですが、(-8, -31を)を返してきます
(これはVSのデザイナなどで表示されてるWindowsベーシックスタイルのタイトルバー高さ、枠の幅なので多分そちらが返ってきているのではと思ったのですが)
表示されている状態に沿った値を取得する方法はないでしょうか
300デフォルトの名無しさん (ワッチョイ c7c0-ehp2)
2017/06/20(火) 17:06:48.28ID:EFljh2yC0 すみません別の単語で検索したら自己解決できました
DwmGetWindowAttribute()をつかう手法でやります
DwmGetWindowAttribute()をつかう手法でやります
301デフォルトの名無しさん (ササクッテロラ Spab-Lzg+)
2017/06/20(火) 19:00:18.30ID:Z7Rlaax/p >>294
考慮不足なんじゃないかというのは、全ての例外を処理しろって事じゃないぞ?
その場で処理するべきかはケースバイケースだが以下は全て考えておくべきだって事だ
発生しうる例外は何か?
どの例外をその場で処理するべきか?
上に投げるのが適切としたのは何故か?
考慮不足じゃないかと言われたら相手が納得するまでこれらの考慮した事を説明すればいいだけ、相手と判断・認識が違っていてもより具体的な話が出来るだろう
もしそれが出来ないなら実際に考慮不足だからもっと考えるべき
考慮不足なんじゃないかというのは、全ての例外を処理しろって事じゃないぞ?
その場で処理するべきかはケースバイケースだが以下は全て考えておくべきだって事だ
発生しうる例外は何か?
どの例外をその場で処理するべきか?
上に投げるのが適切としたのは何故か?
考慮不足じゃないかと言われたら相手が納得するまでこれらの考慮した事を説明すればいいだけ、相手と判断・認識が違っていてもより具体的な話が出来るだろう
もしそれが出来ないなら実際に考慮不足だからもっと考えるべき
302デフォルトの名無しさん (アウアウイー Saeb-jmzv)
2017/06/20(火) 20:06:21.02ID:Ex7wW9yMa 質問者がどういう文脈のどういうニュアンスで「考慮不足」って言われたかなんか
お前に分かるわけねえだろw
エスパーか何かのつもりかねw
っていうか、何を偉そうに威張り散らして講釈垂れてるのかねw
こういう奴心底大バカだと思うわ
お前に分かるわけねえだろw
エスパーか何かのつもりかねw
っていうか、何を偉そうに威張り散らして講釈垂れてるのかねw
こういう奴心底大バカだと思うわ
303デフォルトの名無しさん (アウアウイー Saeb-YD8M)
2017/06/20(火) 20:08:47.28ID:A1/74Hqda アプリが落ちたら考慮不足なんだよ!
顔面グチャグチャにされてぇのかクソが!
ってセリフを大手で聞いたwww
顔面グチャグチャにされてぇのかクソが!
ってセリフを大手で聞いたwww
304デフォルトの名無しさん (アウアウウー Sa77-VgqF)
2017/06/20(火) 20:23:15.93ID:map82aZCa System.OutOfMemoryExceptionで落ちても?
アプリの全域で落ちる可能性あるけど?
アプリの全域で落ちる可能性あるけど?
305デフォルトの名無しさん (アウアウイー Saeb-YD8M)
2017/06/20(火) 20:40:53.02ID:A1/74Hqda >>304
ひとまず組んだ奴の責任かなぁ?
ひとまず組んだ奴の責任かなぁ?
306デフォルトの名無しさん (ワッチョイ fac4-N71/)
2017/06/20(火) 21:10:22.17ID:RnxrF89h0 お前こそ密室で発言した気になってろよ
明日は出社させねえからな
明日は出社させねえからな
307デフォルトの名無しさん (ワントンキン MMaa-QeqB)
2017/06/20(火) 22:08:32.31ID:UY9c0ml0M 要件になってないのに考慮も対応もない
とりあえずで例外を捕まえるやつは転職してくれ
とりあえずで例外を捕まえるやつは転職してくれ
308デフォルトの名無しさん (アウアウカー Sa33-otAv)
2017/06/20(火) 23:27:20.81ID:dU/FxV4ta ん?例外はとりあえず呼び出し元にthrowしとけばいいってこと?
それとも下手にcatchするなってこと?
それとも下手にcatchするなってこと?
309デフォルトの名無しさん (アウアウウー Sa77-VgqF)
2017/06/20(火) 23:29:44.28ID:TEAjB2PSa そのレベルで対処が必要とされているものだけ拾え
想定してないものまで拾うな握りつぶすな
想定してないものまで拾うな握りつぶすな
310デフォルトの名無しさん (ワッチョイ 3aea-pA8U)
2017/06/21(水) 02:43:49.89ID:utv6BdFK0311デフォルトの名無しさん (アウアウイー Saeb-YD8M)
2017/06/21(水) 03:23:32.47ID:gTS1oBXqa312デフォルトの名無しさん (ササクッテロル Spab-QeqB)
2017/06/21(水) 04:20:38.54ID:6XMRbYZBp C#でエクセル出力したいんですけどどうしたら良いですか?
313デフォルトの名無しさん (アウアウイー Saeb-YD8M)
2017/06/21(水) 04:36:07.67ID:gTS1oBXqa >>312
NPOIが正解だって書いてあったの見た
NPOIが正解だって書いてあったの見た
314デフォルトの名無しさん (ワッチョイ 53e6-/28B)
2017/06/21(水) 06:16:18.05ID:RdazTatF0315デフォルトの名無しさん (ワッチョイ 5732-2WTa)
2017/06/21(水) 06:35:50.86ID:1NTI9Fvt0 WebBrowserで動的に変化するページのソースを取得したいのですが、
Browser上のボタンを押す→動画が再生される(HTMLが書き換わる)
といった処理がBrowser内でおこなわれているはずなのですが、
IEのソースを表示ではHTML書き換え前の状態、Chromeの検証(デベロッパーツール)の
elementsでは書き換え後の情報が見れたのですが、
IHTMLDocument2 HTMLDocument = webBrowser1.Document.DomDocument as IHTMLDocument2;
string content = webBrowser1.DocumentText;
としてみても取得できませんでした。
何か他にいい方法はないものでしょうか?
Browser上のボタンを押す→動画が再生される(HTMLが書き換わる)
といった処理がBrowser内でおこなわれているはずなのですが、
IEのソースを表示ではHTML書き換え前の状態、Chromeの検証(デベロッパーツール)の
elementsでは書き換え後の情報が見れたのですが、
IHTMLDocument2 HTMLDocument = webBrowser1.Document.DomDocument as IHTMLDocument2;
string content = webBrowser1.DocumentText;
としてみても取得できませんでした。
何か他にいい方法はないものでしょうか?
316デフォルトの名無しさん (ワッチョイ 536e-mug2)
2017/06/21(水) 06:48:02.31ID:0awfP3cQ0 Selenium使った方が楽よ
もしくはChromeのエクステンションとして作る
もしくはChromeのエクステンションとして作る
317デフォルトの名無しさん (ワッチョイ 8baa-jbt0)
2017/06/21(水) 07:04:09.08ID:sEly9kN+0 .Document.Body.Parent.OuterHtml
318デフォルトの名無しさん (ワッチョイ bb11-yC+1)
2017/06/21(水) 08:19:11.27ID:aH+Y8UGh0 <<<C++>>>
}
0≦1.333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333*∞
E,TO,LA,1,35,8,15,2,0,
[EMO]-#0.*88871~
}
0≦1.333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333*∞
E,TO,LA,1,35,8,15,2,0,
[EMO]-#0.*88871~
319デフォルトの名無しさん (ワッチョイ 53c0-yC+1)
2017/06/21(水) 11:13:10.25ID:J81ElXfl0320デフォルトの名無しさん (ワッチョイ 9e23-u+AO)
2017/06/21(水) 16:39:05.91ID:OqGMB+VY0 public class TestClass {
public enum PublicEnum { One, Two, } //列挙型
private int privateField; //フィールド
public int publicProperty { get { return privateField; } } //プロパティ
public TestClass(int val) { privateField = val; } //コンストラクタ
public string publicMethod(string str)
{ //メソッド
str = "publicMethodが呼び出されました。" + str;
return str;
}
public string publicMethod() { return publicMethod(""); }
}
class Program{
static void Main(string[] args){
Type typeTC = typeof(ConsoleApplication1.TestClass);
MemberInfo[] memberTC = typeTC.GetMembers(
BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static | BindingFlags.DeclaredOnly
);
foreach (MemberInfo m in memberTC) { Console.WriteLine("{0} - {1}", m.MemberType, m.Name); }
}
}
このmemberTCを、typeTC.GetMembers( BindingFlags.Public ); にすると、
NestedType - PublicEnum しか表示されません。
同じようにNonPublicとか他のメンバで試すと何も表示されなくなります。
何かやり方間違っていますか?
public enum PublicEnum { One, Two, } //列挙型
private int privateField; //フィールド
public int publicProperty { get { return privateField; } } //プロパティ
public TestClass(int val) { privateField = val; } //コンストラクタ
public string publicMethod(string str)
{ //メソッド
str = "publicMethodが呼び出されました。" + str;
return str;
}
public string publicMethod() { return publicMethod(""); }
}
class Program{
static void Main(string[] args){
Type typeTC = typeof(ConsoleApplication1.TestClass);
MemberInfo[] memberTC = typeTC.GetMembers(
BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static | BindingFlags.DeclaredOnly
);
foreach (MemberInfo m in memberTC) { Console.WriteLine("{0} - {1}", m.MemberType, m.Name); }
}
}
このmemberTCを、typeTC.GetMembers( BindingFlags.Public ); にすると、
NestedType - PublicEnum しか表示されません。
同じようにNonPublicとか他のメンバで試すと何も表示されなくなります。
何かやり方間違っていますか?
321デフォルトの名無しさん (ワッチョイ efe0-LlRF)
2017/06/21(水) 17:09:05.60ID:ggt7kMvk0 > Public または NonPublic と共に、Instance または Static を指定する必要があります。指定しない場合、メンバーが返されません。
322デフォルトの名無しさん (ワッチョイ 9e23-u+AO)
2017/06/21(水) 17:38:01.17ID:OqGMB+VY0 >>321
ありがとうございます。
ありがとうございます。
323デフォルトの名無しさん (ワッチョイ 5732-2WTa)
2017/06/21(水) 17:57:52.96ID:1NTI9Fvt0324デフォルトの名無しさん (ブーイモ MMaf-VgqF)
2017/06/21(水) 18:40:33.78ID:Os8YZW2iM DOM書き換えはソース書き換えじゃないからな
ソース見れる場合は独自にDOMからソースを組み立ててるだけじゃないかな?
IEがそういう機能提供しているとは思えない
ソース見れる場合は独自にDOMからソースを組み立ててるだけじゃないかな?
IEがそういう機能提供しているとは思えない
325デフォルトの名無しさん (ワッチョイ bafc-VgqF)
2017/06/21(水) 19:05:13.46ID:r7sO91Ct0 例えば整数の配列(リスト)
nums = {4,1,9,7,5,3,1,3,6,7,2,1,3,5,2,6,...}
というのがあって、
これを出現数をキーにしてグループ化するには
nums.GroupBy(x => x)
.Select(x => new { count = x.Count(), number = x.First() })
.GroupBy(x => x.count, x => x.number)
としたらできたんだけど、それぞれ各グループのソートもしたい
出現数順なら、単純に最後に OrderBy すりゃいいんだろうが
やりたいことはそれじゃない
説明くどいかもしれんが、表にすると
出現 数グループ
----------------------------------
1 回 {4, 9}
2 回 {5, 2, 6}
3 回 {7, 1, 3}
. .
. .
. .
. .
の表の右側の各配列をそれぞれソートしたい
まあ foreach 回せばいいんだろうが、後学のために
もっとスマートな方法があれば知りたいなと
nums = {4,1,9,7,5,3,1,3,6,7,2,1,3,5,2,6,...}
というのがあって、
これを出現数をキーにしてグループ化するには
nums.GroupBy(x => x)
.Select(x => new { count = x.Count(), number = x.First() })
.GroupBy(x => x.count, x => x.number)
としたらできたんだけど、それぞれ各グループのソートもしたい
出現数順なら、単純に最後に OrderBy すりゃいいんだろうが
やりたいことはそれじゃない
説明くどいかもしれんが、表にすると
出現 数グループ
----------------------------------
1 回 {4, 9}
2 回 {5, 2, 6}
3 回 {7, 1, 3}
. .
. .
. .
. .
の表の右側の各配列をそれぞれソートしたい
まあ foreach 回せばいいんだろうが、後学のために
もっとスマートな方法があれば知りたいなと
326デフォルトの名無しさん (ワッチョイ 9a5d-GBnf)
2017/06/21(水) 19:16:08.30ID:lPZfHrAN0327デフォルトの名無しさん (ワッチョイ efe0-LlRF)
2017/06/21(水) 19:25:08.09ID:ggt7kMvk0 nums.OrderBy(x => x).以下同じ
328デフォルトの名無しさん (ワッチョイ bafc-VgqF)
2017/06/21(水) 19:25:57.93ID:r7sO91Ct0 >>326
期待してるのは、俺がよく知らないLinqのクエリ演算子
使って一発でって感じだけど
でも別に唯一無二の正解を聞きたいわけでもない
他の人はどうやるのか知りたいだけで
細かいルールとか気にしなくていいよ
期待してるのは、俺がよく知らないLinqのクエリ演算子
使って一発でって感じだけど
でも別に唯一無二の正解を聞きたいわけでもない
他の人はどうやるのか知りたいだけで
細かいルールとか気にしなくていいよ
329デフォルトの名無しさん (ワッチョイ bafc-VgqF)
2017/06/21(水) 19:32:40.57ID:r7sO91Ct0330デフォルトの名無しさん (アウアウイー Saeb-YD8M)
2017/06/21(水) 19:46:28.27ID:yKdKl6mza そろそろ覚えたコードでなんか作ったら?
知識はあるけど知恵が足りてないように見える
プログラム言語研究会ってわけじゃないんでしょ?
知識はあるけど知恵が足りてないように見える
プログラム言語研究会ってわけじゃないんでしょ?
331デフォルトの名無しさん (ブーイモ MMaf-If8a)
2017/06/21(水) 19:54:32.19ID:zfxsbKsgM フォームでタッチパネル対応アプリ作りたいんですが
マルチタッチのイベント拾うにはどうしたら良いでしょうか
マルチタッチのイベント拾うにはどうしたら良いでしょうか
332デフォルトの名無しさん (ワッチョイ efe0-LlRF)
2017/06/21(水) 20:18:20.99ID:ggt7kMvk0 WM_TOUCHメッセージを処理する
333デフォルトの名無しさん (ブーイモ MMaf-VgqF)
2017/06/21(水) 20:40:59.90ID:Os8YZW2iM334デフォルトの名無しさん (ブーイモ MMaf-VgqF)
2017/06/21(水) 20:43:10.04ID:Os8YZW2iM もしかしたwinformsか
だったらごめん
だったらごめん
335デフォルトの名無しさん (ワッチョイ 8796-2WTa)
2017/06/21(水) 21:42:23.91ID:qtkn68K70 Win8以降ならWM_POINTERやらDirect Manipulationやら色々増えてたりもする
336デフォルトの名無しさん (オッペケ Srab-83yN)
2017/06/21(水) 21:47:34.78ID:UBLn/eRur >>319
Open XML SDK でエクセルファイルとか罰ゲームかよww
Open XML SDK でエクセルファイルとか罰ゲームかよww
337デフォルトの名無しさん (ブーイモ MMda-mug2)
2017/06/21(水) 22:16:20.08ID:aInzLc5fM 感覚が麻痺してるみたいだけど、Excelを吐く仕事の時点で十分罰ゲームだから
338デフォルトの名無しさん (アウアウウー Sa77-VgqF)
2017/06/21(水) 22:19:02.37ID:GsXKc/xSa なんで?
データは二次利用してなんぼでしょ
Excelみたいな優秀なGUI備えたソフト自分でつくれんの?
データは二次利用してなんぼでしょ
Excelみたいな優秀なGUI備えたソフト自分でつくれんの?
339デフォルトの名無しさん (ワッチョイ ba11-rl9t)
2017/06/21(水) 22:22:24.06ID:FfOd2t570 >>338
なんでも叩ける俺スゲー君だから相手にしなくていいよ
なんでも叩ける俺スゲー君だから相手にしなくていいよ
340デフォルトの名無しさん (ワッチョイ 160d-hsT2)
2017/06/21(水) 22:28:15.84ID:tM48Am1R0 csvが一番簡単
Excelが必要なら仕方ないけど
Excelが必要なら仕方ないけど
341デフォルトの名無しさん (ワントンキン MMaa-QeqB)
2017/06/21(水) 22:36:10.58ID:T/o2O9AKM Excel.Applicationを使わないと対処不能な要件が入ってくると冷や汗が出る
342デフォルトの名無しさん (アウアウイー Saeb-jmzv)
2017/06/21(水) 23:00:08.71ID:CHphHT4qa Excel OnlineってAPI公開してないんだっけ?
343デフォルトの名無しさん (ドコグロ MM32-p9VS)
2017/06/21(水) 23:00:32.24ID:OATVPpmDM エクセルを使うとロクなことがない。
エクセルの自由度を狭めるという、
誰のためか分からんかことになるからだ
エクセルの自由度を狭めるという、
誰のためか分からんかことになるからだ
344デフォルトの名無しさん (ワッチョイ baea-IEdM)
2017/06/21(水) 23:46:15.23ID:SXybjlfe0 NPOIは結構バグあったな
自分も次やるならClosedXMLだな
ExcelCreatorは障害報告するとバージョンアップで直りますが多かった
要件によっては未だにPIAもあり
自分も次やるならClosedXMLだな
ExcelCreatorは障害報告するとバージョンアップで直りますが多かった
要件によっては未だにPIAもあり
345デフォルトの名無しさん (ワッチョイ d7c0-LvKX)
2017/06/22(木) 00:12:37.97ID:k91IRdXa0 >>336
セルの指定がR1C1使えずにA1限定とか本当面倒だった
セルの指定がR1C1使えずにA1限定とか本当面倒だった
346デフォルトの名無しさん (アウアウイー Sa0b-3gws)
2017/06/22(木) 00:36:01.62ID:Iw2C8Cwxa PIAでオートメーションしかやったことなかったわ
ClosedXMLググってみるとなんかよさそうだねいいこと教えてもらった
まあ今のお仕事では使うことはないだろうけど
ClosedXMLググってみるとなんかよさそうだねいいこと教えてもらった
まあ今のお仕事では使うことはないだろうけど
347デフォルトの名無しさん (アウーイモ MM9b-jXGI)
2017/06/22(木) 07:31:23.23ID:cUiyYbdHM VSTO使えば?
348デフォルトの名無しさん (アウアウイー Sa0b-WW2k)
2017/06/22(木) 07:38:34.20ID:s9kiMNGya Excel入ってなくても使えるやつはどれ?
349デフォルトの名無しさん (ワッチョイ f7e0-z+KB)
2017/06/22(木) 11:30:50.89ID:lcz/9Tid0 NPOIとかClosedXMLとか この辺は単純にファイルの中身読み取って書き換えるだけ
だからついでにEXCELでやるみたいに印刷してとか言われると困る
だからついでにEXCELでやるみたいに印刷してとか言われると困る
350デフォルトの名無しさん (ワッチョイ 9f0d-7qwc)
2017/06/22(木) 14:34:20.10ID:FkmL6sDC0 Excelだから再計算もやってよとか後で言われるとね・・・
351デフォルトの名無しさん (アウアウイー Sa0b-3gws)
2017/06/22(木) 15:33:33.55ID:vU8xR0ewa いやそれはほとんどの場合正当な要求でしょう
計算式入れておけばいいんだから
計算式入れておけばいいんだから
352デフォルトの名無しさん (ドコグロ MMbf-Stqb)
2017/06/22(木) 19:08:26.93ID:n4zvfmL3M353デフォルトの名無しさん (アウアウイー Sa0b-3gws)
2017/06/22(木) 19:26:52.09ID:lD81v1Toa >>352
何言ってるかよく分からんけど、ワークブックはエクセルで開く前提で作るんでしょ?
「再計算もやってよ」ってユーザーさんの要望の意味は、マニュアルであるセルの値を変更したら、
その系列の合計とか平均値とかが自動的に再計算されるようにしてって意味じゃないの?
何言ってるかよく分からんけど、ワークブックはエクセルで開く前提で作るんでしょ?
「再計算もやってよ」ってユーザーさんの要望の意味は、マニュアルであるセルの値を変更したら、
その系列の合計とか平均値とかが自動的に再計算されるようにしてって意味じゃないの?
354デフォルトの名無しさん (ワッチョイ b74b-ZLad)
2017/06/22(木) 20:13:34.35ID:yaPeNTze0 Officeがインストールされている環境ならNetOffice使えばOK
印刷もできるし互換性の問題も絶対に発生しない
COM開放なんかも何も考えずに使えるし楽勝
あとExcelだけじゃなくてWordやOutlookなんかも操作可能だぞ
印刷もできるし互換性の問題も絶対に発生しない
COM開放なんかも何も考えずに使えるし楽勝
あとExcelだけじゃなくてWordやOutlookなんかも操作可能だぞ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- トランプ大統領 エヌビディア製AI半導体の中国輸出許可 安全保障重視の方針転換 [蚤の市★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 【悲報】高市早苗の擬人化がXで大バズりwwwwwwwwwwww [455031798]
- 高市が早くあの発言を撤回しないと、中国からもっと大きな制裁が飛んでくるぞ [805596214]
- 【動画】ファッションモデルまんこ、裸でランウェイを歩く。これがファッションだと言われて [749674962]
- 【画像】髙市さん「無職のシンママ支援を手厚くするため、世帯年収900万円以上の控除をカットします🙂」 [881878332]
- 早大名誉教授「高市内閣の高支持率はデータ操作か、支持している日本人がアホなのか」👈核心を突いてしまう [868050967]
- こんぺこ!こんぺこ!こんぺこ!🐰🏡
