[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/01 19:54 / Filesize : 272 KB / Number-of Response : 1014
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C#, C♯, C#相談室 Part91



1 名前:デフォルトの名無しさん mailto:sage [2016/06/29(水) 23:45:15.36 ID:EZjVZgG6.net]
■Visual Studio 2013 Community & Express(無償の統合開発環境)等はこちら
www.visualstudio.com/downloads/

■コードを貼る場合はこちら
ideone.com/

■前スレ
C#, C♯, C#相談室 Part88 [転載禁止]©2ch.net
peace.2ch.net/test/read.cgi/tech/1437808445/
C#, C♯, C#相談室 Part89
peace.2ch.net/test/read.cgi/tech/1443271409/
C#, C♯, C#相談室 Part90
echo.2ch.net/test/read.cgi/tech/1455160063/

■次スレは>>970が建てる事。
建てられない場合は他を指定する事。

486 名前:デフォルトの名無しさん mailto:sage [2016/12/10(土) 21:45:14.07 ID:BtzSATc1.net]
VirtualMode速すぎる
なんだこれ
これを待ってました。

487 名前:デフォルトの名無しさん mailto:sage [2016/12/10(土) 21:53:53.30 ID:mMrYCd0+.net]
Formsは長いことやってたんだけど.net coreでのWebシステムって容易く出来るんけ?
PHPでのMVCフレームワークとかrailsはわかる

488 名前:デフォルトの名無しさん mailto:sage [2016/12/10(土) 22:08:22.01 ID:0TBYagU6.net]
基本がしっかりしてれば簡単だよ
そのためにUIフレームワークに依存しないように作れっていつも言われるだろ

489 名前:デフォルトの名無しさん mailto:sage [2016/12/10(土) 22:09:21.73 ID:mMrYCd0+.net]
>>481
さんくす
手を出してみるわ
何を選んでもMFCのドキュメントビューよりは良いだろうってのが心の拠り所です

490 名前:デフォルトの名無しさん mailto:sage [2016/12/10(土) 22:28:44.20 ID:moWXVb0v.net]
仮想化せずにListViewで3万アイテム扱ってたのか・・・

491 名前:デフォルトの名無しさん mailto:sage [2016/12/10(土) 22:31:16.68 ID:BtzSATc1.net]
仮想化するとInsertionMarkが使えないみたいです。
どうしましょうか?

492 名前:デフォルトの名無しさん mailto:sage [2016/12/10(土) 23:55:43.96 ID:VtzX6XaJ.net]
>>468
発想を変えて、ListViewを作り直したら?

493 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 07:29:54.22 ID:9qlRR3sU.net]
>>484
WM_SETREDRAWで描画停止してやれば、Virtualでなくても3万件ぐらいいけると思う。
やり方は、検索すれば出てくる。

494 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 08:09:32.73 ID:tSe+v4ik.net]
3万件用と200件用は別のListViewを用意して、Visibleで切り替えるとか



495 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 10:51:04.21 ID:rgeKQ1h1.net]
質問させてください。
Microsoft Press の「プログラミング.NET Framework 第2版」という本に、下記の記述があるのですが、

【【【【【引用ここから】】】】】
internal sealed class Transaction {
 private DateTime timeOfLastTransaction; // 最後にトランザクションが行われた時間を記録するフィールド

 public void PerformTransaction() {
  Monitor.Enter(this); // thisオブジェクトのロックを取得
  // トランザクションを実施...

  timeOfLastTransaction = DateTime.Now; // 直前のトランザクションの時間を記録
  Monitor.Exit(this); // thisオフジエクトのロックを開放
 }

 public DateTime LastTransaction { // 最後にトランザクションが行われた時間を返す読み取り専用プロパティ
  get {
   Monitor.Enter(this); // thisオブジ工クトのロックを取得
   DateTime dt = timeOfLastTransaction; // 最近のトランザクションの時間を一時変数に保存
   Monitor.Exit(this); // thisオブジェク卜のロックを開放
   return dt; // 保存された日時を返す
  }
 }
}
【【【【【中略】】】】】
プロパティの実装でEnterとExitと一時変数dtが必要なことに注意してください。
破壊されている可能性のある値を返さないようにするために、これが重要です。
あるスレッドがPerformTransactionを呼び出している問に別のスレッドがプロパティにアクセスすると、これが起こりえます。
【【【【【引用ここまで】】】】】

Monitorでロックをしてるのに、なぜ「あるスレッドがPerformTransactionを呼び出している問に別のスレッドがプロパティに
アクセスする」ことがありえるのでしょうか?

496 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 11:00:53.02 ID:E1v0n/uN.net]
>>488
プロパティの実装でEnterとExitと一時変数dtが必要なことに注意してください。
破壊されている可能性のある値を返さないようにするために、これ(enter/exit/dtの存在)が重要です。
(enter/exit/dtが存在しないなら、)あるスレッドがPerformTransactionを呼び出している問に別のスレッドがプロパティにアクセスすると、これ(破壊されている値を返すこと)が起こりえます。

つまり(きちんと)ロックしてるならアクセスすることはない

497 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 11:14:59.06 ID:rgeKQ1h1.net]
すみません。質問の書き方がマズかったですね。
それと、もう一度自分でよく考えて、自己解決しました。

疑問に思ったのは、

・複数スレッドが同時にアクセスしないようにするために、EnterとExitが必要なことは
 わかるが一時変数dtはなぜ必要なのか?
・Enter〜Exitでロックしてても、PerformTransactionの呼び出し中に別スレッドが
 アクセスすることがありえるのか?
・その問題を回避するために、いったん一時変数dtに退避する必要があるという意味か?

ということでした。

しかし、よく考えれば、疑問が解消しました。

・dtが無いとreturnで値を直接返すことになる
・そのためにはreturnをEnterとExitで囲む必要がある(がそんなことはできない)
・だから、dtに入れてる

ってだけのことですね。お騒がせしました。
回答いただいた方、ありがとうございました。

498 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 14:59:01.41 ID:o/YiWCEr.net]
>>486
WM〜でなんかやるならInsertionMark云々だって自己解決できるような気が

499 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 22:39:52.04 ID:9qlRR3sU.net]
>>491
描画止めるくらいであればウインドウメッセージとかよくわからなくてもググって数行コピペするだけで出来るし、既に非Virtualで作ったものをVirtualに変更するより手っ取り早いかなと思って。

500 名前:デフォルトの名無しさん mailto:sage [2016/12/11(日) 23:37:43.42 ID:rW4zRmsa.net]
InsertionMarkってNearestIndexが使えないだけみたいで
そこだけ計算で出してやれば使えました。
お陰で高速な動作ができるようになりました。ありがとうございました。

501 名前:デフォルトの名無しさん [2016/12/14(水) 22:10:21.05 ID:zGQk9RuM.net]
正規表現Regexのインスタンスを作る際の文字列指定をするときに、
@を先頭につけているのを見るのですが、
これはどういったことでしょうか
必要なのでしょうか

502 名前:デフォルトの名無しさん mailto:sage [2016/12/14(水) 22:16:24.21 ID:LQhYfqJw.net]
>>494
\を大量に書かなくていいようにするため

503 名前:デフォルトの名無しさん mailto:sage [2016/12/14(水) 23:05:36.02 ID:PdV20HuV.net]
Rubyには、こういう関数があるけど、C#には無いの?

rp = Regexp.escape("$bc^")
\$bc\^

Regexp.escape(string) -> String
string の中で正規表現において、特別な意味を持つ文字の直前に、
エスケープ文字(バックスラッシュ)を挿入した文字列を返します

504 名前:デフォルトの名無しさん mailto:sage [2016/12/14(水) 23:08:32.15 ID:+dTErpY/.net]
そのまんまのがあるが
Regex.Escape(string)



505 名前:デフォルトの名無しさん [2016/12/14(水) 23:16:39.96 ID:zGQk9RuM.net]
>>495
494です
ありがとうございます

506 名前:デフォルトの名無しさん mailto:sage [2016/12/15(木) 08:46:01.32 ID:3NUBKOAZ.net]
完全に市場はJavaの圧勝が決まったようだ。

507 名前:デフォルトの名無しさん mailto:sage [2016/12/15(木) 12:09:47.56 ID:VtGam84M.net]
>>499
へーすごいね

508 名前:デフォルトの名無しさん mailto:sage [2016/12/15(木) 12:57:24.49 ID:4tPXC7sh.net]
金箔貼っても糞は糞。を思い出した。

509 名前:デフォルトの名無しさん mailto:sage [2016/12/15(木) 13:45:31.77 ID:7KRIzock.net]
https://chrome.google.com/webstore/detail/%E3%81%AF%E3%81%A6%E3%81%AAng/mbgdnfmdelffjdhkdggilmphfdihnmcj?hl=ja

510 名前:デフォルトの名無しさん mailto:sage [2016/12/15(木) 13:55:12.96 ID:8Dy0z+2t.net]
chrome.webRequest.onBeforeRequest.addListenerでこれブロックしてる
"*://b.st-hatena.com/*",
"*://b.hatena.ne.jp/entrylist/*",
"*://b.hatena.ne.jp/entry/image/http*",
"*://b.hatena.ne.jp/entry/json*",
"*://b.hatena.ne.jp/bc/or/http*",
"*://api.b.st-hatena.com/entry.count*",
"*://cdn-ak.b.st-hatena.com/*",

511 名前:デフォルトの名無しさん mailto:sage [2016/12/15(木) 19:32:58.03 ID:aesj07do.net]
c#で書かれた解析機を吐き出すyaccみたいなツールってないの?

512 名前:デフォルトの名無しさん mailto:sage [2016/12/15(木) 20:28:20.48 ID:u3iwxuUX.net]
自分に合ったのを探せ
https://en.wikipedia.org/wiki/Comparison_of_parser_generators

513 名前:デフォルトの名無しさん [2016/12/19(月) 00:22:28.34 ID:hPPOameE.net]
テキストボックスでValidatingを実装し、e.cancel=trueにした場合について2つ質問があります。
1.フォームの×ボタンを押してValidatingが発生しe.cancel=trueになっても、form.closingを実装するとフォームを閉じれるとネットブログであったのですが、
これはどういった仕組みでしょうか?
cancelになっても別のコントロールについては実装すれば、その処理が走るのでしょうか。
また、msdnでのそこに関する説明はどこにありますでしょうか?
2.そもそも,フォームの×ボタンでValidatingを走らせないようにするにはどうしたらいいでしょうか?

514 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 14:59:52.95 ID:/uogIQCg.net]
2つと言いつつ1に3つぐらい質問があるように見える

> form.closingを実装するとフォームを閉じれる
実装するとじゃない。
Closingイベントのイベントハンドラでe.Cancelをfalseに設定したら閉じられる。

> これはどういった仕組みでしょうか?
Validatingで設定したe.CancelがClosingで設定されるe.Cancelで上書きされるだけ。

> cancelになっても別のコントロールについては実装すれば、その処理が走るのでしょうか。
ちょっと何言ってるか分からない。

> msdnでのそこに関する説明はどこにありますでしょうか?
ValidatingとClosing(FormClosing)のページにないんなら、ないんじゃない?

> フォームの×ボタンでValidatingを走らせないようにするにはどうしたらいいでしょうか?
WM_CLOSEをハンドルする方法とか提案されてる
d.hatena.ne.jp/dotnetmemo/20060702/1151839515



515 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 21:55:11.26 ID:m20BeiOW.net]
前から疑問だったんだがValidatingでフォーカス移動封じるタイプのUIって誰が得するんだ?

516 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 23:07:10.38 ID:nxaByp7v.net]
開発者の保身に役立つ
ユーザビリティ何それ

517 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 22:02:28.59 ID:OBoWPQLO.net]
VisualStudioでスキャフォールディングっていうの?
あのC#コード生成ってどうやってんの?
右クリックメニューのコマンドで画面開いてパラメータ入力したらコードがいくつかババっと出力されてプロジェクトにインクルードされて時にはconfigまで書き換わるあの便利なやつ

518 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 22:13:35.55 ID:I2xL3xVw.net]
子供発見

519 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 23:15:00.27 ID:EydnUon0.net]
>>510
テンプレートで生成してるだけだよ
自分で同じようなことやりたければT4でも調べてみたら

520 名前:デフォルトの名無しさん [2016/12/22(木) 00:41:34.58 ID:0KrqUh09.net]
>507
506です。遅くなりましたがお答えありがとうございます。

補足で質問です。
> cancelになっても別のコントロールについては>実装すれば、その処理が走るのでしょうか。
ここに関しては、validatingでe.cancel=trueにしたら、そもそもclosingが走らないかと思っていたのですが、そういうことではないのでしょうか。validatedまでキャンセルになるということでしょうか。

521 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 00:52:26.00 ID:3F8kH50r.net]
closingにデバッグポイント置いてそこで停まったら実行されるってことだろ
そんくらいもできないのかよ

522 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 10:02:04.72 ID:i/pZa1E8.net]
https://chrome.google.com/webstore/detail/%E3%81%AF%E3%81%A6%E3%81%AAng/mbgdnfmdelffjdhkdggilmphfdihnmcj?hl=ja

523 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 10:12:48.15 ID:hYDEOt1H.net]
mbgdnfmdelffjdhkdggilmphfdihnmcj をNGワード設定だな。この開発者そこらに張りまくってやがる

524 名前:デフォルトの名無しさん mailto:sage [2016/12/23(金) 13:13:48.39 ID:/B2iyB1G.net]
そうなの?登録しとこっと…ハッ



525 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 06:16:26.82 ID:WEJSRv5C.net]
PythonのコードをC#で書き直してるんだけどさあ
C#で関数の引数に関数を指定することって出来ないのかな?

具体的にしたいことは関数の傾きを求めることで、たとえば適当な関数
float A(float x){return x^2;}
があったときに、傾きを求める関数
float B(関数, float x){return xでの傾き;}
みたいなものを作成して
d = B(A(), 0.1f);
のような呼び出し方をしたいんだけど・・・・なにかそれに近いC#のコードの記述方法ってないかな?

526 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 06:53:00.31 ID:kPI05Gb3.net]
delegate じゃ駄目なの?

527 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 06:56:25.78 ID:iV5eYun0.net]
float B(Func<float, float>, float) ということなのかな

528 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 07:23:08.42 ID:WEJSRv5C.net]
>>519-520
デリゲートを使うのが一番近い記述ができるのかな?
そうするとミスって複数メソッドを登録したときの処理も記述しとかなきゃなんないかな・・・・

529 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 07:41:28.77 ID:qXNVWWNf.net]
>>518
関数を引数にしたいなら520でいいけど

そもそもC#で任意の関数を引数にして傾きを求めるのは無理だと思うよ
引数の関数が微分可能かどうか(下手すると連続かどうか)も保証されてないのに

530 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 09:21:29.09 ID:3LTJc3r/.net]
微分可能であることの保証ができないなんてどの言語でも一緒だろ
イベントハンドラ以外のデリゲートでマルチキャストを使う馬鹿もいない(いたら今すぐやめろ)から無視していい
あとそういう計算にfloat使うと激しく誤差が出るからfloatじゃなくてdouble使え
Pythonの浮動小数点数もdouble精度だ

531 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 10:31:06.47 ID:dPbQS77J.net]
>>522
微分可能とか最近覚えた用語を使いたくてしょうがないんだな w

532 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 10:37:23.24 ID:qXNVWWNf.net]
あらかじめコーディングされた関数たちしか使わないなら、導関数も事前に用意しておけばいいよね

>>523
mathematica等の数式処理言語ならできるよ

533 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 12:25:20.15 ID:1tLIoM8k.net]
関数の数値微分は機械学習とかシミュレーションとかで普通に使うぞ

534 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 15:05:19.64 ID:uriaUnJG.net]
数学とC#の関数の定義の区別ができないお子ちゃまですか。



535 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 15:50:11.41 ID:IXC75mXH.net]
おまえはC#の関数で、俺は数学の関数だ!
そこになんの違いもありゃしねぇだろうが!

536 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 15:52:59.52 ID:51ELz7Bu.net]
空のWebアプリプロジェクトからASP.NET MVCをインストールして適当にビューを作ったんだけど
マークアップエディタのインテリセンスにViewBagがないって怒られます
コードエディタでは普通にViewBagにアクセスできます
これはいったいどういうことなんでしょうか

537 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 16:49:07.86 ID:uriaUnJG.net]
式をこねくり回したいんだろう。

自分ですうしきクラスを作れよ。

538 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 17:01:13.35 ID:WEJSRv5C.net]
>>522
たしかに解析的に正しい微分できないけど、僅かにXをずらしてそれっぽい数値を出したいんです

539 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 17:07:45.02 ID:3KzFEnUI.net]
微分可能かとどう実装するかは別の問題だからどうでもいいなw
ちょっと大げさめだが、俺ならinterface使う

540 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 18:08:40.53 ID:2kirY5E3.net]
>>531
何が言いたいのかよく分からんけど普通にこういうのじゃいかんの?
static double GetSlope(Func<double, double> func, double x, double delta = 1e-6)
{
  var left = func(x - delta/2);
  var right = func(x + delta/2);
  return (right - left) / delta;
}

541 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 19:30:16.14 ID:dPbQS77J.net]
>>533
いや実装方法はわかってるでしょ
python からの移植なんだし
>>531>>522 が微分可能とか言い出してるからそれへの説明だと思うぞ

542 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 22:57:47.19 ID:ZPnvY2Gu.net]
>>524
えっ?

543 名前:デフォルトの名無しさん mailto:sage [2016/12/25(日) 01:15:18.80 ID:2bXL0gSr.net]
音声付の外国語の単語学習アプリを
作ろうとしてます。
数千の単語の音声を、少数のファイルで扱うには
どのような方法使えばいいんでしょうか?

544 名前:デフォルトの名無しさん mailto:sage [2016/12/25(日) 02:05:37.96 ID:1Va0hmvu.net]
全部つなげて1つのファイルにしておいて、
欲しい時にはその単語データのオフセットと長さを指定して取り出して再生、かな



545 名前:デフォルトの名無しさん mailto:sage [2016/12/25(日) 02:11:45.12 ID:xhZEf65t.net]
圧縮された音声データでそんな高精度のシークが可能なのかなw

っていうか、今時のWindowsってたいがいの言語の音声合成エンジンがタダで提供されてなかったっけ?

546 名前:デフォルトの名無しさん mailto:sage [2016/12/25(日) 02:18:12.49 ID:tQvSe6Qr.net]
>>538
バイト配列にしてつなげてサイズと順番のインデックス作ればいいだけ

547 名前:デフォルトの名無しさん mailto:sage [2016/12/25(日) 02:45:35.51 ID:bvgmOMUN.net]
話が噛み合ってないな
>>537>>539はバラバラの既存の単語音声データを単一ファイルにまとめる話
>>538はボインや子音とかから合成するTTSライブラリ使えって話
>>536の目的は学習アプリ
前者なのか後者なのかはっきりさせないと答えようがないが
TTSから垂れ流す音声が正しいとは限らないので
単語レベルなら既存の音声辞書から引っ張って来た方がいい気はする

548 名前:デフォルトの名無しさん mailto:sage [2016/12/25(日) 07:18:53.50 ID:MTT7ZR6N.net]
ボインは赤ちゃんのためやでー

549 名前:デフォルトの名無しさん mailto:sage [2016/12/25(日) 08:51:11.94 ID:NMeoNRf0.net]
音声を64kぐらいでMP3化してSQLiteに登録するのが最善じゃね?

550 名前:デフォルトの名無しさん mailto:sage [2016/12/25(日) 09:09:11.14 ID:r6LchLOJ.net]
今時はクラウドだろ
バラバラのままでS3にでも突っ込んどけ

551 名前:デフォルトの名無しさん mailto:sage [2016/12/25(日) 10:03:57.23 ID:bejmTeDn.net]
再生の度にHDDから読み込むともたつくときがあるんだよね
だからといってゲームみたいにシーンに必要なデータを予め読める量でもないし
難しかったな

552 名前:デフォルトの名無しさん [2016/12/27(火) 19:34:32.54 ID:r2C7TXrR.net]
ASP.NET WebフォームとMVC勉強するならMVC一択ですか?

553 名前:デフォルトの名無しさん mailto:sage [2016/12/27(火) 19:44:21.85 ID:RazBYv5e.net]
>>545
もちろん
CoreもFullも使えるし

554 名前:デフォルトの名無しさん [2016/12/27(火) 21:03:13.98 ID:kWoV7/2e.net]
>>546
ありがとうございます
やはりそうなんですね



555 名前:デフォルトの名無しさん mailto:sage [2016/12/27(火) 22:49:58.42 ID:DbM4OtJE.net]
ASP.NETの基本的なことを学ぶなら空のWebFormsから始めた方がいい
MVCから入るとプロジェクトテンプレートの時点で訳が分からなくなって意欲を損なう

556 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 00:24:46.29 ID:6PQ8eENJ.net]
>>548
いやいや今どきWeb Formsとかないわ
仕事で仕方なくっていう理由ならわかるけど

557 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 02:37:03.12 ID:tHS+BZPK.net]
windows formでtwitterクライアントを作ろうとしているのですがタイムラインをどう表示するかで詰まっています
具体的に言うとブラウザや携帯のtwitterアプリで見るような形でタイムラインを表示したいのですがどのようなコントロールを使えばいいのか分かりません
どなたか教えていただけないでしょうか

558 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 06:10:33.37 ID:U/Wkcgn0.net]
WebBrowser

559 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 06:28:56.80 ID:hLvgF446.net]
>>550
まずはタイムラインの仕様を詳しく書いて

560 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 07:40:36.68 ID:EECpjgXG.net]
俺もWebBrowserコントロールがいいと思うな。

561 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 07:55:45.93 ID:nclhbqFU.net]
Twitterはツイートの表示の仕方がディスプレイガイドラインによってガチガチに決められてる
独自に作ったところで結局同じものを再発明することになるだけで時間の無駄でしかない
結論として、WebBrowserでいい

562 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 11:01:45.01 ID:Xid52+QB.net]
electron使え

563 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 11:06:16.13 ID:WHhbvFAo.net]
UWFは知らんけどWin8のストアアプリにはそんなサンプルが結構あったね。
あの手のUIとXAMLは相性がいいとか何とか。

そういうのパクってWPFで....と思ったけどWindos Formで作るのか

564 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 11:11:05.17 ID:Xid52+QB.net]
Krileとかいう うぃんどうずさいきょうくらいあんと はWPFだぞ



565 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 11:33:29.67 ID:tDjKTni2.net]
まったく同じもん作りたいならWebBrowserコントロールだけど
そうじゃなきゃリストビューのオーナードローかな
なんか意図があるから作りたいわけだろうからそれに合わせて作れとしかw

566 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 16:33:19.65 ID:XPsq6pGc.net]
PictureBoxだろ。

567 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 17:04:41.95 ID:hmpOAOdC.net]
ツイッターほとんど使わんので勘違いしてるかもしれんけど、
Windows Formなら複合コントロール(UserControl)使うのが一番現実的なような気はする

568 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 20:06:12.28 ID:tHS+BZPK.net]
>>552
基本的にはブラウザで見るものと同じです
が、リプライ、RTなどのアイコンがなくなっておりさらに時間の表示位置と形式が違います
また、どのクライアントでツイートしたかの情報も表示します
クライアントの情報はツイート文の下に表示し、時間は絶対時間表記でクライアント情報の右に表示します

569 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 20:09:09.19 ID:ace8uG6s.net]
>>561
Twitterの規約に違反してる

570 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 20:15:46.64 ID:tHS+BZPK.net]
>>562
違反している部分は例えば時間表記はデフォルトでの設定は相対時間表記にしておき設定を変更することによって絶対時間表記にすることができるといった方法で回避しようと考えています

571 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 20:34:23.74 ID:EECpjgXG.net]
なんでWebBrowserコントロールは嫌なの?
手軽に見た目もきれいに作れるし仕様変更もし易いのに。
PictureBoxにゴリゴリ描くのも楽しいだろうけど仕様変更が辛いよ。

572 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 20:42:16.89 ID:tHS+BZPK.net]
>>564
個人的な考えなのですがWebBrowserコントロールを使うのであれば普通のブラウザソフトを使ってTwitterをすればいいと考えているからです

573 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 21:54:16.84 ID:Bwga9xUV.net]
>>556
確かにWPFはこういうの得意だね。

>>563
誤魔化してるだけで、回避は出来てないような。

574 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 22:32:59.93 ID:tHS+BZPK.net]
>>566
WPFの方が作りやすいでしょうか?
規約については他のクライアントがこのような方法をとっていたのでこれで良いものと思いまして…



575 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 22:43:34.20 ID:6Nd1Z00H.net]
TwitterのタイムラインをWebBrowserでやろうとした場合ってHTMLを加工してタイムラインだけを取る的な感じになるの?

576 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 22:56:26.65 ID:EECpjgXG.net]
普通はタイムラインのデータを取得してHTMLを生成してWebBrowserコントロールに
流し込むってイメージだと思うよ。

577 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 23:00:12.19 ID:Bwga9xUV.net]
&g

578 名前:t;>567
WPFはちょっと凝ったUI作るのにはお勧めなんだけど、初期の学習コストが大きいのがネック。
規約に関してはグレーゾーンでしょ。Twitter社次第。
[]
[ここ壊れてます]

579 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 23:30:17.32 ID:NekU8PBK.net]
var dic = new Dictionary<object, object>();
var isd = dic is IEnumerable<object>;
var asd = dic as IEnumerable<object>;

↑これなんだけど、vs2015だと
実際の値は
isdがfalse
asdがnull
なんだけど、ウォッチ式上は
isdがtrue
asdには値が入ってるんよ。
オレの環境だけ?
vs2010はどっちもfalseのnullなんだよね。
他の環境は手持ちがなくて確認できず

で、本題なんだけど

Dictionary<T, U>をIEnumerable<object>に変換できないかね?
誰かやり方知りない?

580 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 23:32:42.76 ID:gapvLjp6.net]
Cast<object>()

581 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 23:52:57.99 ID:NekU8PBK.net]
>572
サンクス

すまんがもう一個
Dictionary<T, U>を一度object型に変換した後にDictionaryに変換せずに
IEnumerable<object>に直接変換する方法ってある?
元々、object型の値がIEnumerable<V>を継承してるか、継承していたら変換するって処理を作ってる時に気付いたもんで

後出しで申し訳ないが知ってたら教えてくり

582 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 00:33:10.83 ID:u+8RF5XF.net]
>>569
なるほどthx

583 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 00:38:59.83 ID:ICm4kcbN.net]
>>573
ターゲットフレームワークが4以降なら直接IEnumerable<object>にキャストできる
Dictionary<,> は IEnumerable<KeyValuePair<,>> を実装している
.NET4以降ではIEnumerable<>は共変だからIEnumerable<派生>をIEnumerable<既定>として扱える
あと関係ないけど.NETの場合ジェネリックの型引数は
1つの場合はT、複数の場合はTKey, TValueのようにT〇〇と名付ける決まりだから
Java臭いキモい書き方はやめろ

584 名前:573 mailto:sage [2016/12/29(木) 00:49:52.62 ID:ICm4kcbN.net]
すまん訂正
KeyValuePair<,>は値型だから不変だな
直接キャストはできないので>>572で全要素を個別にボックス化してやる必要がある



585 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 00:58:24.25 ID:ICm4kcbN.net]
あと >object型の値がIEnumerable<V>を継承してるか、継承していたら変換する だけど、
IEnumerable<object>のかわりに単に非ジェネリックのIEnumerableにキャストすりゃいいよ
IEnumerable<>はIEnumerableを継承しているので、
IEnumerable<>なら要素が値型だろうが何だろうがIEnumerableには確実にキャストできる
どうしても<object>にしたいなら ((IEnumerable)obj).Cast<object>() で変換できる

586 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 01:43:17.27 ID:yvgqyy5k.net]
おぉ、サンクス!!
値型だとダメなのか。知らんかったわ。

名前については気を付けるよ。
.NETのクラスライブラリ設計にも書いてあんね。もう一度読み返すよ。
助かった。ありがとう






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<272KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef