X



ふらっと C#,C♯,C#(初心者用) Part131 [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
垢版 |
2017/09/08(金) 18:12:11.06ID:Ej7G00WU
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。

他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。

内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。

なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part130
https://mevius.2ch.net/test/read.cgi/tech/1500327645/
■関連スレ
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/
0003デフォルトの名無しさん
垢版 |
2017/09/08(金) 21:41:20.91ID:13cy/HVm
そうそうw
ボーリング処理ってなんだよ
わかるかよ

957 名前:デフォルトの名無しさん (ブーイモ MMba-d5PD)[sage] 投稿日:2017/09/07(木) 16:48:04.48 ID:CjGXGOTyM [2/2]
1秒毎にボーリング処理するなかであるクラスのメソッドを呼び出す場合、毎回newするのは悪手ですか?staticが基本でしょうか?
0004デフォルトの名無しさん
垢版 |
2017/09/08(金) 21:44:51.40ID:13cy/HVm
答え

普通のstaticで済む用途ならstaticで書いたほうがいい
負荷やリソースじゃなくて毎回newする意味がない

sin計算するとして毎回Mathインスタンスをnewしなくてはいけない設計だったら糞だなって思う
0005前スレ 966
垢版 |
2017/09/08(金) 21:52:15.93ID:nZ7nhjDi
前スレ >>968 の ID:VpThhHIU0 さん。

助かりました。ありがとう。
その例外メッセージ後半が目に入っていませんでした。。おバカでした。

後半の方法で対応できたのですが。
この方法で派生先クラスをシリアライズすると、クラスの情報も一緒に出力されるんですね。
出力しない方法があったら知りたいです。もっと探せば見つかるかなあ。
0006デフォルトの名無しさん
垢版 |
2017/09/08(金) 22:04:57.94ID:5liNTHI5
前スレ>>975
> 1分以上止まっちゃってたことあるよ
その時の.Net Frameworkのバージョンいくつだったんだろ。
今はバックグラウンドGCとか、GCも改良されてて長期間止まり難くなってるけど。
0007デフォルトの名無しさん
垢版 |
2017/09/08(金) 22:10:04.29ID:5liNTHI5
改良されたとは言っても、全く止まらない訳じゃないから、
数100msecでも止まって欲しくない場合は、やっぱり手動でGCを制御する必要があるけどね。
0008デフォルトの名無しさん
垢版 |
2017/09/08(金) 22:45:19.27ID:Ej7G00WU
>>4
答になってないよw
staticで済む用途ならstaticで書いたほうがいい、ではなくてそれはstaticで書かなきゃだめw

最初から言ってるように、毎回newするのと対立する方法は、
フィールドでインスタンスを持っておこくと。
0010デフォルトの名無しさん
垢版 |
2017/09/08(金) 23:50:16.96ID:Ej7G00WU
>>9
意味が分からない

普通であろうがなかろうが、staticで書けるメソッドをインスタンスメソッドで書く意味はないし
やってはダメだろうに
0013デフォルトの名無しさん
垢版 |
2017/09/09(土) 03:16:09.56ID:ZyaEKkZw
前すれワッチョイとかいうのだったんだな
2chのシステムよく知らんので普通のスレで立てちゃったよ
やり方知らんしw

気に入らなかったら別のスレ立ててね
0015デフォルトの名無しさん
垢版 |
2017/09/09(土) 06:30:41.62ID:mbeKZ08U
おまいらに真実を話す。ポーリングって確かに打ったんだわ。スマホが勝手にボーリングに変換してたんだわ
ATOKあほすぎんだろ
0016デフォルトの名無しさん
垢版 |
2017/09/09(土) 08:37:40.24ID:GUslkcWv
変換はgoogleのが絶対いいな
流行りのワードも出てくるし
これ以外考えられないって性能になっちゃってないか?
0017デフォルトの名無しさん
垢版 |
2017/09/09(土) 10:04:18.06ID:m2qj4yLN
インスタンスをキープしたいのなら、ポーリングのクラスにフィールド設定してそこに置けば済むわけでstatic classは有り得ないわな
static classはグローバル参照がどうしても必要な設定値とか、拡張メソッドとか、Mathのようなライブラリで使うもので
不用意に使うとろくな事がない代物だ
0018デフォルトの名無しさん
垢版 |
2017/09/09(土) 10:20:42.56ID:6JP7a1zU
>>5
DataContractSerializer系じゃ無理なはず
飽くまでシリアライザなんでデシリアライズできなきゃならない
型情報が無くなったら元のどの型にデシリアライズすればいいか分からなくなっちゃう
0019デフォルトの名無しさん
垢版 |
2017/09/09(土) 10:39:45.84ID:IbIBfPO7
それでも書いた処理によってガベコレまでの一時メモリリークは起こるので強制ガベコレの管理はどうせ必要になる

誰かのライブラリ使ってて中がブラックボックスだったときにガベコレまでの一時メモリリークは気づけない

staticで変数用意してもそれがすべてと言い切れないなら意味がない
無駄な努力じゃねーかな?
0021デフォルトの名無しさん
垢版 |
2017/09/09(土) 11:56:12.29ID:usm4kYFG
ライブラリだったら内部の構造は考えられずガンガン使われるから
ポーリングクラスが1000個とか作られてつかえねーなって言われる
だったらstaticな要素にしといたほうがいい
0022デフォルトの名無しさん
垢版 |
2017/09/09(土) 13:29:46.77ID:WZb5jfgG
なんか昨日から変なところでstatic使えとか意味不明なこと言ってる人がいるけど、
Cのstatic付きのローカル変数と勘違いしてないか?w

それC#にはないよ
VBにはあるけどねw
0023デフォルトの名無しさん
垢版 |
2017/09/09(土) 13:49:42.28ID:mQdlpUO1
>>22
何の話をしているんだ
元の質問が別のclass内のメソッドを呼びたいが1秒ごとに呼び出すのに毎回インスタンスを作りたくないので
そのメソッドをstaticにしてインスタンス作らずに呼べるようにした方がいいかってものだった
だから上の方でそのインスタンスをフィールドで持っておけば済むって話になってんの
0024デフォルトの名無しさん
垢版 |
2017/09/09(土) 14:06:55.82ID:WZb5jfgG
>>23
だから、(これは質問者の質問のせいでもあるけど)話の最初からstaticなんて
まったく関係ない。そんなことは機能かれ俺自身が言ってるのよ

それとは別に、>>19とか>>21とか読むと、C#にもCのstaticなローカル変数が存在すると
勘違いしてるんじゃないかと
0027デフォルトの名無しさん
垢版 |
2017/09/09(土) 15:55:44.10ID:usm4kYFG
>>24
誰もそんなことは言ってないのに
勝手にそう思ってるのはよくわかった

質問はstaticメソッドの話をしてるのはみんなわかってる
0028デフォルトの名無しさん
垢版 |
2017/09/09(土) 17:51:48.60ID:f8+hvMV6
>>27
じゃあ何の話をしてるの?
率直に言って>>21は何を言ってるのかさっぱり分からん

昨日から言ってるし>>23も言ってるように、そももも元の質問者の話とstaticは何の関係もない。
恐らく質問者は何か勘違いしてstaticと書いてるだけ
0029デフォルトの名無しさん
垢版 |
2017/09/09(土) 18:18:19.52ID:usm4kYFG
>>28
え?

憶測だけど
イベント内で毎回生成される
var a=new ClassA();
a.Do(b);

staticメソッドのClassA.Do(b)にしようかということじゃないのか?
;初心者の質問なんてその程度だろ
どこからc++のstaticと勘違いしてるなんて変な主張が出てくるのかわからない
0030デフォルトの名無しさん
垢版 |
2017/09/09(土) 18:24:38.82ID:usm4kYFG
インスタンスのフィールドでaを持てって話も出てるけど
そもそもインスタンス作る必要もないものをわざわざ保存しておく意味はないよ

それがなぜだか生成コストの話になりそっちに付き合って話したら妙な揚げ足取りみたいのに
絡まれていいことないわ
0031デフォルトの名無しさん
垢版 |
2017/09/09(土) 18:28:32.66ID:f8+hvMV6
>>29
何周遅れの話をしてるのよ。疲れるわ

だから、staticで書けるメソッドならstaticで書くのが当たり前で、
それをあえてインスタンスメソッドとして書くという選択肢は存在しない。

何が「え?」だよ。こっちが言いたいよw
0032デフォルトの名無しさん
垢版 |
2017/09/09(土) 18:30:13.39ID:usm4kYFG
だからそこでおわってんだよ
でなんでc++のstaticが出てきたり
質問者が勘違いしてstaticって言ってるみたいなトンチンカンな話になるのかと
もうおとなしくしてればいいのに
0033デフォルトの名無しさん
垢版 |
2017/09/09(土) 18:32:50.82ID:usm4kYFG
>昨日から言ってるし>>23も言ってるように、そももも元の質問者の話とstaticは何の関係もない。
>恐らく質問者は何か勘違いしてstaticと書いてるだけ

こういうこと書いててよく言えるな
0035デフォルトの名無しさん
垢版 |
2017/09/09(土) 18:34:21.92ID:f8+hvMV6
なんか日本語「も」不自由な人みたいだね
何言ってるのかさっぱり分からんw
0037デフォルトの名無しさん
垢版 |
2017/09/09(土) 19:41:37.58ID:FYc/xt6+
荒れてるので、名のりにくいのですが、私が質問者です。
>>23
この記載で、最適解はこれだと認識しました。

で、質問した時点では
>>29の憶測通り。

とりあえず個人的にはもう納得してるので、これで終わりにしてほしい。

皆さんありがとう
0038デフォルトの名無しさん
垢版 |
2017/09/09(土) 19:47:52.23ID:m2qj4yLN
>>31
それは大間違い。staticで書かなくても良いものは極力インスタンスメソッドにするべきだな
0039デフォルトの名無しさん
垢版 |
2017/09/09(土) 19:52:01.12ID:GUslkcWv
>>38
理由を書けよw
いったいどういう育ち方したらそんな投げっぱなしのジャーマンなんだ?
0043デフォルトの名無しさん
垢版 |
2017/09/09(土) 20:29:10.27ID:f8+hvMV6
>>39
>>38は釣りじゃなく本気で言ってるなら(恐らくそうw)
関わっても時間の無駄にしかならないお方だ。暇つぶしにはいいかもしれないけどw

時々対面の世界でもこういうガチで盛大な勘違いをやらかしてる人がいるから困るよ本当w
0044デフォルトの名無しさん
垢版 |
2017/09/09(土) 21:30:45.08ID:usm4kYFG
前に会ったRuby使いはクラスメソッド(c#のstaticメソッド)は極力使わないで
インスタンスメソッドを使うべきだって言ってたのを思い出した

何らかの理由があるんだろうけど無視した
0045デフォルトの名無しさん
垢版 |
2017/09/09(土) 22:09:15.56ID:wzTKK5fz
どっちがいいって話じゃないけど、あとで実装を差し替える可能性があるなら
クラスメソッドを直接使わずにシングルトンにするって手法はある。
0046デフォルトの名無しさん
垢版 |
2017/09/09(土) 22:28:01.73ID:m2qj4yLN
インスタンスってのは主に多重実行のための仕組みなんだから、ある程度適当に作ってもスレッドセーフな物が出来上がる
staticで作るなら、複数のスレッドから同時多数アクセスが有っても大丈夫なように組まないといけないし
それが面倒だから極力スタティックは避けるべきだと思うんだがな
0047デフォルトの名無しさん
垢版 |
2017/09/09(土) 23:17:45.56ID:nwiyZr1T
Taskでも内部でThreadPoolを使うから
(ThreadPool.SetMinThreads(実行したい数))は必要だけど
ThreadPool実行で実行して待ち合わせ
とTaskで実行して、Task.WhenAll
は何が違いますか?
そもそも、ThreadPoolは必要ないですけど気になったので、質問します。
0048デフォルトの名無しさん
垢版 |
2017/09/09(土) 23:20:05.29ID:5C7c1QNW
極力staticメソッドを使うという方針を取ると
関数用クラスとデータ用クラスに分かれやすくオブジェクト指向の考え方からは離れやすい
OO的にはアンチパターンになる可能性もあるけどトレードオフを理解して方針を決めればいいと思うよ
0049デフォルトの名無しさん
垢版 |
2017/09/10(日) 00:19:09.54ID:0Cs8J57s
>>18
そうですね。
今回の場合、相手がアレで。向こうが予期しない要素を含むデータを送ると不正終了するらしく。
最初の質問前に時間がなかったのでデータクラスを完全に2つに分けて作ってしのいでたのですが、そのままにするしかないかも。。
0050デフォルトの名無しさん
垢版 |
2017/09/10(日) 00:57:09.14ID:pV2ta4X5
>>47
既定ではスレッドプール使うってだけでTaskが後ろで何使うかは規定されてない
あとWhenAllはasync/await向けに作られてる
0051デフォルトの名無しさん
垢版 |
2017/09/10(日) 01:13:53.87ID:dSp+Ezdg
>>50
規定なら同じですか?
async/await使わないならthread poolの方が良いのかな?
0052デフォルトの名無しさん
垢版 |
2017/09/10(日) 01:40:04.99ID:pV2ta4X5
>>49
Json扱うならJson.NET使うのが良いよ
基本ライブラリ以外使っちゃダメとか言われてるならSystem.Web.Script.Serialization名前空間
0054デフォルトの名無しさん
垢版 |
2017/09/10(日) 02:11:55.78ID:dSp+Ezdg
>> 53
やっぱり、メソッド分けてasync/await使いたくなる気がする。
ThreadPoolの方がメソッド分けしない糞コードでも書きやすい。
0055デフォルトの名無しさん
垢版 |
2017/09/10(日) 03:56:30.01ID:6GasKA+m
わざわざ低位のThreadPoolを使うメリット無いだろ。
ちなみにTaskの方は生成時のオプションでThreadPool使わず専用スレッドを割り当てたりも出来る。
0056デフォルトの名無しさん
垢版 |
2017/09/10(日) 04:49:01.84ID:hdyOlPd+
超低レベルな質問ですみません
wpfで実験しています
ボタンを押すとLabelが回転するというテストです

ボタンはトグル処理してあって押すと回転、もう一度押すと止まっるという作動です

int band = 0;
DispatcherTimer tim = new DispatcherTimer();
public void Rotet()
{
label01.Content = "自動回転";
tim.Start();
tim.Interval = TimeSpan.FromMilliseconds(10);
tim.Tick += Tim_Tick1;
}
public void Rotstop()
{
label01.Content = "自動回転停止";
tim.Stop();
}
0057デフォルトの名無しさん
垢版 |
2017/09/10(日) 04:49:17.97ID:hdyOlPd+
public void Tim_Tick1(object sender, EventArgs e)
{

band++;
label01.RenderTransform = new RotateTransform
{
Angle = band
};
}

10ミリ秒毎に1度回転するという作動を希望しています
が、トグルボタンを押してRotetを呼び出すたびに、band++での増加量が加算されてしまいます
5回Rotetを呼び出すと10ミリ秒毎に5増えます
増加量は常に1であって欲しいのですが、これの根本原因はなんでしょうか?
0058デフォルトの名無しさん
垢版 |
2017/09/10(日) 05:21:45.40ID:6GasKA+m
>>56
Tickイベントのハンドラ登録だけを毎回してるから。
登録は1度だけにするか、毎回解除もするようにしないと。
後、質問とは関係ないけど、タイマーを開始するタイミングもおかしい。
0059デフォルトの名無しさん
垢版 |
2017/09/10(日) 07:49:42.90ID:hdyOlPd+
>>58
どうもありがとうございます
今VS立ち上げられないので確認はあとになりますが、教えていただいた内容は把握できました
後、たしかにstartのタイミングおかしかったですね
こっちも直してみます

どうもありがとうございました
0061デフォルトの名無しさん
垢版 |
2017/09/10(日) 11:02:35.14ID:u2dcVsCu
>>55
既存のメソッドに手を加えずtaskにできますか?
0062デフォルトの名無しさん
垢版 |
2017/09/10(日) 18:43:13.56ID:yZp0NmX3
Macで開発されている方がいましたら環境を教えて欲しいです
visual studio for macはwindowsアプリを作らなければ不便はありませんか?
0063デフォルトの名無しさん
垢版 |
2017/09/11(月) 03:02:17.61ID:OjrsKbwz
>>61
TaskでもThreadPoolでもThreadでも同じだけど、
既存メソッドがスレッドセーフでないなら、一般的なマルチスレッド対策は必要。
0064デフォルトの名無しさん
垢版 |
2017/09/11(月) 04:22:03.43ID:xOd8/hnB
インターフェイス(ICollection)を実装しています。
例えば、.Clear() メソッドを実装するときに、

public void ICollection<String[]>.Clear()
{

のように、public を付けると、怒られます。
修飾子 public がこの項目に対して有効ではありません。

合理的な理由でもあるのでしょうか。
0065デフォルトの名無しさん
垢版 |
2017/09/11(月) 06:00:48.58ID:dDtMImyT
>>63
ThreadPoolが長時間処理に向かないって書いてあったけど、それも嘘だと思う。
GUIアプリとかゲームなら表示を妨げるけど、データ処理だけやるなら変わらない。
0067デフォルトの名無しさん
垢版 |
2017/09/11(月) 08:52:59.26ID:OjrsKbwz
>>65
それはThreadPoolは実行されるスレッド数を少なく抑えて処理を順番にこなすための仕組みだから。
長時間の処理だとThreadPoolの少ない実行スレッドの1つを占有してしまう。
ThreadPoolの実行スレッド数の上限を増やしても良いけど、それより専用のスレッドを割り当てたら方が良いだろう。
Taskの場合は、LongRunningオプションを付ければ、ThreadPoolではなく専用スレッドになる。
0068デフォルトの名無しさん
垢版 |
2017/09/11(月) 09:22:14.90ID:/+/7clo/
>>64
publicを付けたければICollection<>.を外せばいい。
インターフェイス名.メソッド名 の形のメソッド定義はインターフェイスメンバの明示的実装といって、
クラスとして見ると不可視だけどインターフェイスを通せばアクセスできるメソッド定義方式。
なのでpublicでもprivateでもないということでアクセスレベルを指定できない。
0069デフォルトの名無しさん
垢版 |
2017/09/11(月) 10:29:45.93ID:dDtMImyT
>>67
その処理以外やらないなら、どうでもよくね?
0070デフォルトの名無しさん
垢版 |
2017/09/11(月) 10:44:26.27ID:pmpZkIs4
まあ小さいプログラムで全部把握できて問題ないと判断できるなら好きにすればいいだろ
0072デフォルトの名無しさん
垢版 |
2017/09/11(月) 12:59:45.47ID:dDtMImyT
馬鹿でも使えるってのは重要
async/awaitなんて頭の良い奴しか使えない
しかも必要のない簡単なレベルの処理もある
0073デフォルトの名無しさん
垢版 |
2017/09/11(月) 15:25:28.66ID:4atU11H8
C#は馬鹿でもできちゃうけど
逆引きサンプルを適当に見つけてきてコピペするだけで完了
でもVC#使わないとGUIが作れない
VC#が作る雛形何なのかすら知らない
一からテキストエディタだけで作れるのはコマンドラインツールぐらいしかできない
0074デフォルトの名無しさん
垢版 |
2017/09/11(月) 15:41:22.50ID:n0q9WWLR
label内に複数行を表示すると、表示領域外にまで改行された行が表示されず、上部の行だけが表示されます
最下行基準で、入り切らない部分は上部の行をスクロールアウトさせて表示させたいのですがやり方が検索しても上手く探せませんでした
どういう方法がありますか?
0078デフォルトの名無しさん
垢版 |
2017/09/11(月) 18:57:43.16ID:JSNADtu1
リファクタリングしてくれるサービスないかな?
糞長いコード書いて可読性やばいんだわ
0081デフォルトの名無しさん
垢版 |
2017/09/11(月) 21:03:26.89ID:9wMrToxf
class A{ public virtual void test(){} }
class B : A{ public override void test(){} }
var b = new B();
b.test();

bからAのtestを呼びたい場合はどうすればいいでしょうか。
0082デフォルトの名無しさん
垢版 |
2017/09/11(月) 21:11:05.30ID:McMCGXVu
>>81
まっとうな方法はない
MethodInfo使っても無理
ILGeneratorなどで(callvirtでなく)call命令を発行する必要がある
0084デフォルトの名無しさん
垢版 |
2017/09/11(月) 21:26:34.21ID:wRb7h9Km
>>81
これを実現したいのって、具体的にどういうケースなの?
差し支えない範囲で用途を教えて
0085デフォルトの名無しさん
垢版 |
2017/09/11(月) 21:31:06.84ID:9wMrToxf
>>84
状況によって派生された処理ではなくオリジナルの処理をしたいだけです
0087デフォルトの名無しさん
垢版 |
2017/09/11(月) 21:36:40.45ID:zUMWcZ3H
日本語で無駄なやり取りするより>>83みたいにURL1つ貼ってコレ見ろでいいじゃないの
設計がどうのとか言ってもしゃーないし
0088デフォルトの名無しさん
垢版 |
2017/09/11(月) 21:41:05.67ID:9wMrToxf
>>83
これを見てもよくわかりません。
メソッドの内部からbaseで基底クラスのメソッドにアクセスできる方法はしっています。
質問は変数bからAのtestを呼ぶ方法です。
0090デフォルトの名無しさん
垢版 |
2017/09/11(月) 21:56:12.41ID:1TpoY8sm
>>88
Bにベースクラスのtestを呼ぶメソッドが用意されていなければ普通の方法では不可能でしょう
0091デフォルトの名無しさん
垢版 |
2017/09/11(月) 21:58:07.40ID:9wMrToxf
>>90
その方法にすることにします
0093デフォルトの名無しさん
垢版 |
2017/09/11(月) 22:23:45.62ID:wRb7h9Km
overrideをnewに変えてBaseクラスにキャストしてから使えば
同じメソッド名でBaseクラスのを呼び出せる
0095デフォルトの名無しさん
垢版 |
2017/09/11(月) 23:48:23.10ID:xOd8/hnB
>>68
とてもわかりやすく有難うございました!
インターフェイスに実装方法が二種類あるとは知りませんでした。
明示的ではない方で実装したいと思います。

結構ぐぐったんですが、それについて述べられたページが見つからなかったし、
C#のハンドブックにも載っていなかったことなのでとてもためになりました。
0096デフォルトの名無しさん
垢版 |
2017/09/12(火) 09:00:44.91ID:EOOe72TQ
○次受けが多いほど退場率が早くなる。高くなる

直受けの50万 客:いつまでもうちにいていいよ
3次受けの50万(客は90万払ってる) 客:短期延長していい?
5次受けの50万(客は150万払ってる) 客:作り終わったらとっと出てけ できなかったら即退場だ 
長時間労働 高稼働 高スキル要求が多い

フリーランスサイトを運営している零細ITの自称エージェントは労働市場から流れてくる案件を転売してるだけだった。
労働市場に加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む

エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×3 = 言い値50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×1 悪質な言い値で50万以下
エンド - ユー子 - エージェント-JIET 公表価格 90~60 - JIETに加入して公表価格で応募できる

eJobgo JIET JISA で検索

優良エージェント・優良サイト

首都圏IT(PE-BANK) クラウドテック プログラマーズ
0097デフォルトの名無しさん
垢版 |
2017/09/12(火) 09:41:27.60ID:BNnArjmm
Listのselectで入力された値に応じてPropertyを指定したいのですが、もっとスマートなやり方がありそうなので教えてください
今は↓のように手作業で全パターンをチェックしていて、

class Product {
string Field1 ...
string Field2 ...
...
}

List<Product> list = ...
string input = ...

switch (input) {
case "Field1":
result = list.select(p => p.Field1);
break;

case "Field2":
result = list.select(p => p.Field2);
break;
...
と、続いて長いくて見辛いし手間
}

これを
result = list.select(p => p[input]);
こんな感じで入力された値に応じて返す方法を知りたいです
0100デフォルトの名無しさん
垢版 |
2017/09/12(火) 11:26:42.14ID:FDETfUWp
>>97
Dictionaryは?
0101デフォルトの名無しさん
垢版 |
2017/09/12(火) 11:29:54.29ID:FDETfUWp
Enum使う手もあるけど
用途次第
0104デフォルトの名無しさん
垢版 |
2017/09/12(火) 12:23:45.40ID:1FkmH3QI
class Product
{
  string Field1 ...
  string Field2 ...
  ...
  private static Dictionary<string, Func<Product, string>> mSelectorTable
  = new Dictionary<string, Func<Product, string>>()
  {
    {"Field1", p => p.Field1},
    {"Field2", p => p.Field2},
    ...
  }

  public static Func<Product, string> GetSelector(string key)
  { return mSelectorTable[key]; }
}

...

var s = Product.GetSelector(input);
var result = list.select(s);
0115デフォルトの名無しさん
垢版 |
2017/09/12(火) 16:11:01.84ID:BNnArjmm
>>111
GetPropertyとGetValueで一行で出来ました!ありがとうございます
0129デフォルトの名無しさん
垢版 |
2017/09/12(火) 21:36:08.20ID:3hDQXbkU
こういう状況になると必ず単発ばっかりになるよねw
ビビリのくせに発言してんじゃねーよクズがw
0131デフォルトの名無しさん
垢版 |
2017/09/12(火) 21:45:04.44ID:JIE9XJ1l
for使っている会社のおっちゃんにforeach楽ですよとそれとなく言ったら、遅いしそれに添字使えねえだろと叱られた
0137デフォルトの名無しさん
垢版 |
2017/09/13(水) 02:42:40.26ID:LyfBWgxR
C#で使える軽量なWebブラウザコンポーネントを教えてください。
SHDocVwはAxImportしてもレジストリ編集しないとIE7相当でしか動作しないですし、Chromeだとインストールしないといけないので・・・・
exeと同じフォルダにdll置いておくだけで使えるのが欲しいのですが。
0139デフォルトの名無しさん
垢版 |
2017/09/13(水) 08:05:28.36ID:RaLzloEv
質問です。よろしくお願いします。

システムカラーを変数で指定するにはどうしたら良いでしょう?
SystemColors defBGC;
defBGC = SystemColors.ActiveCaption;
簡単に言うと↑のような事をやりたいのですが、宣言ではローカル変数として扱われますが、代入でエラーが出てしまいます
どのようにして代入すればよいのでしょうか?
0140デフォルトの名無しさん
垢版 |
2017/09/13(水) 08:05:39.55ID:NbPbWVRY
Linqが遅いって言う馬鹿はなんでC#使ってるの?
機械語で直接プログラミングでもしてろw
0144デフォルトの名無しさん
垢版 |
2017/09/13(水) 08:24:37.37ID:KoAlYIGF
10倍君って前にも暴れてたよーなと思ってログ検索したら100倍だった
IBMがどうとか言ってたから多分別人のバカだ
0145デフォルトの名無しさん
垢版 |
2017/09/13(水) 08:29:18.96ID:efGCb2+a
いや、流石にそこまで遅くなる処理わざわざ使う意味ねーし
俺は遠慮させてもらうわ
0146デフォルトの名無しさん
垢版 |
2017/09/13(水) 08:32:14.78ID:efGCb2+a
あ、ちょっと気になって
いまもそうなのかなぁと思って前書いたコードでやってみたけど
100倍も有り得る数字出るな
激遅いじゃん
これは普通に使ってると問題出るね
0150144
垢版 |
2017/09/13(水) 08:46:03.62ID:KoAlYIGF
IBMじゃなくてOracleだったわ
統計的結果がどーたらって

もう6年も前の話なんだなあ
いまだにこんなのが湧いてくるくらい、C#ユーザも新陳代謝してるんだな
感慨深い
0153デフォルトの名無しさん
垢版 |
2017/09/13(水) 09:08:49.90ID:NbPbWVRY
>>152
1ナノ秒が10倍遅いのと1秒が2倍遅いのとでは10倍の方が結果速いって例えは理解できる?
Linqは前者。てーのーくんにはわからないだろうな〜w
0154デフォルトの名無しさん
垢版 |
2017/09/13(水) 09:10:16.92ID:NSWcHcOm
>>139
SystemColorsの各プロパティが返すのはColor型だよ
システム色だけを代入できる型ってのはSystem.Drawingには存在しない
全部Color構造体で扱われる
0155デフォルトの名無しさん
垢版 |
2017/09/13(水) 09:14:16.27ID:jUJn8YC2
>>153
問題は同じ処理だとしてもネックになる箇所で同じ処理でも別の処理書かなきゃいけないじゃん
それも面倒だし
全体に散りばめたときに10倍っていうと流石に問題が起きる遅さだよね

linq禁止のがぶっちゃけ楽だねぇ
0156デフォルトの名無しさん
垢版 |
2017/09/13(水) 09:18:11.66ID:AIHl3Jwd
>>150
C#は入りやすいし、色々作りやすいから好きだわ
GUIもちゃと作れるし、Unityでゲームも作れる
今後はxamarinでアプリ開発もできるようになるし
やったねC#!
0159デフォルトの名無しさん
垢版 |
2017/09/13(水) 09:26:53.05ID:NbPbWVRY
>>155
え?処理のかき分けが面倒なんだw
Linq禁止する方が面倒なのにな〜wてーのーくんは世界の人々がどうしてLinq使ってるか考えたことないの?ねえ?
0162デフォルトの名無しさん
垢版 |
2017/09/13(水) 10:07:49.89ID:MBL3+jC1
売国安倍は憲法改正で国民主権と基本的人権
を奪うつもりだ。 ← 民主主義の崩壊

http://www.data-max.co.jp/280113_ymh_02/

↑ マスコミは 9条しか報道しないが 自民案
の真の恐怖は21条など言論の自由を奪うこと

http://blog.goo.ne.jp/kimito39/e/ec37220f64a8e1d6ed732dd0ab95cbf0

↑超危険な緊急事態条項で人権無視の内閣独裁に!

https://www.youtube.com/watch?v=h9x2n5CKhn8

上のビデオで 自民党は 国民に基本的人権
は必要ないと怖いことを平気で主張。

http://xn--nyqy26a13k.jp/archives/31687

↑ 都民ファーストも安倍と同じく 憲法改正で 人権
無視の大日本帝国憲法に戻すつもりだから
絶対に投票してはだめだ。 民主主義が崩壊する

http://blog.goo.ne.jp/ngc2497/e/8899f65988fe0f35496934dc972e2489

↑ ネトウヨ= 安倍サポーター工作員はネットで国民を騙す。

https://dot.asahi.com/aera/2016071100108.html?page=3
http://blog.goo.ne.jp/kimito39/e/c0dd73d58121b6446cf4165c96ebb674

↑ 安倍自民を操るカルト右翼「日本会議」は国民主権否定。
国民投票や選挙では自民党、維新、小池新党に絶対に入れるな。
0166デフォルトの名無しさん
垢版 |
2017/09/13(水) 10:35:04.05ID:NbPbWVRY
>>164
はあ?二度手間?これだから低脳はw
自分の考えとやってる事が手間になってるという現実にはやく気付こう?ね?
0167デフォルトの名無しさん
垢版 |
2017/09/13(水) 10:40:39.80ID:krw6K623
>>166
は?実際二度手間じゃん
使わなければそれに悩むこともないし
しかもこれを使ったからといってそんなに手間が減るわけじゃないよ

でも、10倍遅いんだよ
リスクばっかり高いよね
0168デフォルトの名無しさん
垢版 |
2017/09/13(水) 10:45:51.78ID:+YTT5det
>>166
君も自分が確信犯で荒らしてる寂しいバカの共犯にとっくになってることに早く気づけ。
っていうかこんな幼稚なバカ相手にして何が楽しいんだ
0169デフォルトの名無しさん
垢版 |
2017/09/13(水) 10:45:59.33ID:NbPbWVRY
>>167
使い分けができない底辺プログラマーですって自己紹介してるようなものだよ?
それとも自分はそうですって認めちゃってるのかな??
0170デフォルトの名無しさん
垢版 |
2017/09/13(水) 10:47:58.15ID:krw6K623
>>169
え?どうやって使い分けるの?
見積りに必要なのに見積り時に出てこないじゃん
かき分けの工数が
0171デフォルトの名無しさん
垢版 |
2017/09/13(水) 10:50:09.53ID:9sNAvSM9
>>138
これ見る限り大丈夫じゃね

https://msdn.microsoft.com/ja-jp/library/aa664754(v=vs.71).aspx
>foreach が配列の要素を走査する順序は、次のように定義されます。1 次元配列の場合、要素はインデックス 0 から始まってインデックス Length ? 1 で終わるインデックスの昇順に走査されます。
>多次元配列の場合、要素は、最初に右端の次元のインデックスが増加し、次にその左側の次元のインデックスが増加し、さらにその左側の次元のインデックスが増加する、というように走査されます。
0174デフォルトの名無しさん
垢版 |
2017/09/13(水) 11:21:14.85ID:dr0a1QEl
$"{num:D4}"
こういうふうに書式を指定して数字を表示したいときに、この4の部分を変数に変えるのってどうすればいいの?
0176デフォルトの名無しさん
垢版 |
2017/09/13(水) 11:47:30.22ID:NSWcHcOm
>>174
多分無理
$"{num.ToString("D"+x)}"
みたいにそこだけToStringすれば?
0181デフォルトの名無しさん
垢版 |
2017/09/13(水) 12:08:44.02ID:NbPbWVRY
>>179
負けるとか何言ってるのかな?本当に頭悪いね〜w
使い分けができないのを言い訳にしないでまずはちゃんと勉強しなさい
0182デフォルトの名無しさん
垢版 |
2017/09/13(水) 12:23:06.88ID:krw6K623
まあ、俺をやっつけたところでlinqがおっそいことは変わらないけどね

お前の作るものって全部ナチュラルに10倍遅いだろ
今時のPCだから大丈夫って?
いやー、俺の使うアプリでは遠慮して欲しいなw
メモ帳とかお前が作ると普通に起動に10倍かかるんだろ?w
0183デフォルトの名無しさん
垢版 |
2017/09/13(水) 12:23:18.90ID:+YTT5det
>>175
これ、前にも話題になったけど、
foreachが列挙する順序はコレクションの列挙子の実装に依存するよ。

>>171の記述は配列についてのもの
0184デフォルトの名無しさん
垢版 |
2017/09/13(水) 12:28:02.59ID:NbPbWVRY
>>182
Linq使うと起動に10倍も時間かかるんですか〜?w
無知を曝け出して恥ずかしくないの?あ、低脳だから気付いてないのかw
0185デフォルトの名無しさん
垢版 |
2017/09/13(水) 12:30:29.30ID:X5nLy4IB
private void Form1_Load(object sender, EventArgs e)
とForm1ロード時に実行されるイベントハンドラを
Form1上のボタンが押された時に再度実行したい時に
ボタンクリックのイベントハンドラに
Form1_Lord(null,null);
と書いて呼び出した場合、何かまずいことありますでしょうか?
今のところ、Form1_Load内でthis.はForm1として作動しているようですが、
Form1を明示的に指定したほうが良い気がしますが、
Form1_Lord(null,null);
のnullの部分にどう書くとForm1からの呼び出しという体になりますか?

やりたいことはボタンで追加した配列を再度読み込んでForm1_Lordを動かしたい
いわばForm1のリロードといった感じです

言葉を間違えてるかもしれませんが、よろしくお願いします
0186デフォルトの名無しさん
垢版 |
2017/09/13(水) 12:38:12.21ID:krw6K623
>>184
でもお前が作ったもんって普通に遅いと思うよ
どこでもそういう遅い処理書いて全体に散りばめちゃってるとネックになるとこしかみないっしょ?
でもロードとかちょっとしたとこでも処理使い回してるから
いまるところで微妙に遅いっしょw
積もり積もってクソ遅いけど比較対象がないからバレにくいって感じ
0187デフォルトの名無しさん
垢版 |
2017/09/13(水) 12:43:04.63ID:NbPbWVRY
>>186
そうやって事実でないことを思い込みで事実だとして今までの人生を生きてきたのかな?
君の頭の中ではLinq使うと起動が10倍遅いんだもんね〜
そろそろ現実を見ようよ?
0189デフォルトの名無しさん
垢版 |
2017/09/13(水) 13:04:29.12ID:xEywpSPi
>>185
よくやります。
自分は
Form1_Lord(this,null);
にして、呼ばれ側で e がNULLがどうか見て、自然なイベントか人為的イベントか区別したりしてます。
0190デフォルトの名無しさん
垢版 |
2017/09/13(水) 13:16:33.38ID:+YTT5det
>>185
>>189
いや、そういう場合は今Form1_Loadに書いている処理を別の独立したメソッドHogeに移して、
FormのLoad、ButtonのClickそれぞれのイベントからHogeが呼ばれるようにしましょうよ

方法はラムダ式使って
this.Load += (s, e) => Hoge();
Button1.Click += (s, e) => Hoge();

でもいいし、ラムダ式が分からないならデザイナで追加したイベントハンドラから
Hogeを呼んでもい
0191デフォルトの名無しさん
垢版 |
2017/09/13(水) 13:30:55.02ID:PNHj0wS/
決まった目的のために作られたイベントハンドラを別の目的に使うのはよくないよ

すでに書いたコードを実行したいだけなら別のメソッドにしたほうがいいというかすべきだよ
VSのリファクタリングが便利
メソッドにしたい部分を選んでおいてメソッドの抽出を行うだけ
0195デフォルトの名無しさん
垢版 |
2017/09/13(水) 14:35:06.35ID:X5nLy4IB
>>190
>>191
どうもありがとうございます
やはり行儀悪そうですよね。スッキリもしてないし、なんとなくロジカルじゃない。
別メソッドに移してソレを呼び出す方向でいきます

>>189
どうもありがとうございます
「あぁここでリロードかからないから更新されないんだぁ〜」と気づいた時に応急処置的に使ったんですが、
「あ、結構ちゃんと動くw」のでこれ良いのかな?ってっ感じでしたが、人為的呼び出しを区別するという使い方もできるんですね

今は勉強中なので、私には裏技的なものはまだ早いですね
0205195
垢版 |
2017/09/13(水) 17:53:06.84ID:X5nLy4IB
>>191
うぉおお
リファクタリングスゴイ!
VSの機能もっとよく勉強しよう…
0206デフォルトの名無しさん
垢版 |
2017/09/13(水) 18:08:41.03ID:e8EuhLKE
DataGridViewのCellを複数行の文字列を表示するComboBoxにしようとしてるんですが
DataTableにComboBoxの列を挿入して
そのDataTableをViewのDataSourceとして使おうと思ってます
ここで困っているのですが、DataTableのComboBoxの列のDataTypeって
System.Stringでいいんでしょうか??
複数行の文字列をList<string>でまとめて渡そうとしてるんですが
「実行時にDataGridViewComboBoxCellの値が有効ではありません」エラーが出ます
DataTypeがListではなくstringなので当たり前の話のようにも思えますが
DataTypeで使えそうなのは他にSystem.Objectくらいで、これもエラーになります
0207デフォルトの名無しさん
垢版 |
2017/09/13(水) 20:38:23.16ID:DuSqV2km
とりあえずDataTableにはComboBoxは入れない
もうなんというか全体によく分からん
そもそもComboBoxは表示じゃなくて選択のためのコントロールだと思うんだけど
ひょっとして単に数行にわたるデータをドロップダウンで表示したいってこと?
0208デフォルトの名無しさん
垢版 |
2017/09/13(水) 20:42:22.41ID:bd/NJHl4
逆にDataTableにcomboboxで出力して型を確かめればいいんじゃないの
通常のcomboboxもObject.CollectionでList<string>は直に入れられない
0210デフォルトの名無しさん
垢版 |
2017/09/13(水) 20:48:04.62ID:e8EuhLKE
ComboBoxで複数選択肢を見せて
ユーザがドロップメニューから必要な選択肢を選んだときに
イベントハンドラでそれに対応する値を拾って・・・みたいな感じです
0211デフォルトの名無しさん
垢版 |
2017/09/13(水) 21:15:35.44ID:Kb3sPxGP
Unityで以下のコードの[Dependency("Cat")]を
[Dependency("Dog")]や[Dependency("Fox")]のように
文字列の部分を動的に書き換えたいのですが
そのような事は可能でしょうか?

よろしくお願いします

public class Person
{
[Dependency("Cat")] //ここを動的に"Dog"や"Fox"に書き換えたいです
public IAnimal Pet { get; set; }
public void CallPet()
{
Pet.Cry();
}
}
0214デフォルトの名無しさん
垢版 |
2017/09/13(水) 22:41:09.81ID:n1InxPaY
>>211
アノテーションやめてResolveするときにクラス名渡すようにすればいい
Resolve<T>(String)やBuildUp<T>(T, String)の
Stringのところにマッピング登録時に指定した名前を渡す
0215デフォルトの名無しさん
垢版 |
2017/09/13(水) 23:01:12.47ID:bDhlqYix
実装の動的切り替えが必要ということはそれはDIパターンでやるべきじゃないってことだよ
せっかく依存性を断ち切った筈なのに選り好みしちゃダメでしょ
設計を間違えてるんだよ
こういう場合は素直にFactoryパターンを使う
FactoryそのものはDIすればOK
0216デフォルトの名無しさん
垢版 |
2017/09/13(水) 23:54:41.00ID:eqWbXMWw
datagridviewに、エクセルのデータバーみたいなの表示させたいんですが、できますか?
0217デフォルトの名無しさん
垢版 |
2017/09/14(木) 07:17:51.37ID:33e4FbzQ
>>213
そうです
そのページを見た時に、文字列の部分をXMLファイルに書けば呼ぶクラスを外部のファイルに書けると思ったんです

続きがある事に気付かなかったので合わせて読もうと思います

ありがとうございます
0218デフォルトの名無しさん
垢版 |
2017/09/14(木) 14:49:16.54ID:pAH1a2kb
class hoge
{
public int a;
public void func(){++a;}
}
delegate void func();
var h = new hoge();
func f = h.func;
h = null;
f();

この場合f()は正常に実行されますか
hをnullにしただけではGCでお掃除されないのですか
0219デフォルトの名無しさん
垢版 |
2017/09/14(木) 15:10:34.66ID:QdQxHVhn
コンソールへの表示についての質問です。
BackgroundColorなどを変更して文字の色を変えるのではなく、文字列自体に色をつけることはできないのでしょうか?

string str = MyColor.Red + "Red";
Console.WriteLine(str);
// 赤色で、Redと表示されるようにしたい
0221デフォルトの名無しさん
垢版 |
2017/09/14(木) 15:33:35.47ID:FSouChj9
一旦現在の前景色を退避して、前景色を指定した色に変更、文字列出力、もとの前景色に戻す
っていう関数を自分でつくればいい
前景色は
Console.ForegroundColor = ConsoleColor.Red
のようにして変えられる
0222デフォルトの名無しさん
垢版 |
2017/09/14(木) 15:46:46.92ID:4pNC6iaA
>>218
デリゲート変数がインスタンスhのインスタンスメソッドへのデリゲートを握ってる間は、
間接的にhへの参照を持ってるのと同じことになるみたいよ。
もちろんデリゲート変数じゃなくてイベントでも同じ。
だからこれがリークの原因になることがある。

ググってみたけどMSDNだとここにちょろっと説明があるぐらいだなあ
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/events/how-to-subscribe-to-and-unsubscribe-from-events#unsubscribing
0224デフォルトの名無しさん
垢版 |
2017/09/14(木) 17:43:05.75ID:QdQxHVhn
>>220 >>221
ありがとうございます。
0225デフォルトの名無しさん
垢版 |
2017/09/15(金) 00:42:42.05ID:Ay+AWdB+
配列に要素を追加するべく、検索で調べて、色々やってても希望の作動にならず、散々悩んでたのですが
参考にしたページの

>配列に要素を1つ追加した新しい配列を取得したい場合のメモ。
>
>配列でやる。
>
>int[] array = { 0, 1, 2 };
>int[] result = new int[array.Length + 1];
>result[array.Length] = 3;
>
これで最後にarray = result;
入れてもきませんよね?
初心者の私が文句言うわけじゃないですが、半日悩んでしまった
追加した分しか表示されないぃ〜とw
0226デフォルトの名無しさん
垢版 |
2017/09/15(金) 02:16:45.02ID:kDBNGlTT
result[array.Length] = 3の前か後ろにArray.Copy当たりが抜けているんだろうが
配列1 = 配列2
みたいな代入はまずやらない
0227デフォルトの名無しさん
垢版 |
2017/09/15(金) 04:20:57.10ID:Ay+AWdB+
そゆことでした
他のページ見て気づきました

このコードで行くと

int[] array = { 0, 1, 2 };
int[] result = new int[array.Length + 1];
array.CopyTo(result,0);
result[array.Length] = 3;
で行けたのでした

で今気づいたのですが、実装はstring[]だったんですが
要素数が違うもので代入しても大丈夫…なんですよね?
エラーも出ないし
arrayが全くresultと要素数含めておなじになると
0228デフォルトの名無しさん
垢版 |
2017/09/15(金) 04:39:07.14ID:pokoDkL3
質問内容と変わっちゃうけど、動的に配列使うなら、Listを使った方がいいような
Arrayにしないといけないなら、そのときだけToArray使えばいいし
0230デフォルトの名無しさん
垢版 |
2017/09/15(金) 08:21:21.03ID:8bT15OBL
起動時間が気になるならUWP使えばいいのにな
ライブラリをスタティックリンクで、使わないクラスは実行ファイルから取り除かれる
だから笑っちまうほど起動は高速だ
0231デフォルトの名無しさん
垢版 |
2017/09/15(金) 11:32:01.43ID:E70gGXQb
そういえば前スレでもLINQが遅い遅い言ってるのいたけど同じ奴かな
Stack OverFlowの中の人が遅いからusing System.Linqを根こそぎ消したとか言ってたけど、
その情報のソース聞いても教えてくれなかった
0235デフォルトの名無しさん
垢版 |
2017/09/15(金) 12:16:10.74ID:2JmbV9iR
>>227
まず参照型がどういうものか理解した方がいいね。
配列は参照型。

参照型の変数に入っている値はオブジェクトの参照(とりあえずオブジェクトのメモリー上の位置を表す値だと思えばいい)
であってオブジェクトそのものではない。

array = result;
だからこれは、変数resultの中に入ってる「配列への参照(位置情報)」をarrayにコピーしてるだけ。

webで言えばarrayやresulに入ってる値はただのURIであってドキュメントやファイルそのものではない。

https://msdn.microsoft.com/ja-jp/library/cc406735.aspx
0237デフォルトの名無しさん
垢版 |
2017/09/15(金) 13:11:40.52ID:U5HKHjh0
>>236
自分で測ってみれば?
テストプログラムじゃなくて会社で納品するようなプログラムでやってみるのオススメ
0239デフォルトの名無しさん
垢版 |
2017/09/15(金) 13:36:18.08ID:48fogf69
>>235
stringも参照型なので、そこだけだとその人はともかく変に勘違いする初心者もいるかもしれない
http://okwakatta.net/topic/topic051.html
このサイトが分かりやすいと思った
>>228
var array = new List<string>(new string[] { "0", "1", "2" });
array.Add("3");//要素の追加
string[] result = array.ToArray();//string[] に変換
こんな感じだよな
参照型に同じ型代入するのはだめじゃないけどなんか気持ち悪い
0242デフォルトの名無しさん
垢版 |
2017/09/15(金) 14:04:27.63ID:DZnU5fjo
>>241
いいよ別にw
お前が納得したってしなくたってw
俺の人生にはなんの肥やしにもならない
ただ、お前の作るプログラムはナチュラルに遅いw
0249デフォルトの名無しさん
垢版 |
2017/09/15(金) 14:49:55.78ID:eL7tpeWb
>>248
頭悪い底辺プログラマーを助けてあげたいんだよ?だからまず自分が間違ってるってことに気付こうね
0251デフォルトの名無しさん
垢版 |
2017/09/15(金) 15:02:22.39ID:eL7tpeWb
>>250
あー自分の誤ちを認められないパーソナル障害なんだろうな
そうじゃないと起動が10倍遅くなるなんて言えないもんね
0253デフォルトの名無しさん
垢版 |
2017/09/15(金) 15:05:20.69ID:eL7tpeWb
>>252
まーだLinqについて理解できないのか
Linq使うと起動が10倍遅いから使わないって本当に底辺だからもう二度と言わない方がいいよ
0259
垢版 |
2017/09/15(金) 18:56:08.86ID:Or0Hv36R
linq使って重いって言う奴は、explain一度もせずSQL書いて重いって言う奴ときれいにカブる。
0261デフォルトの名無しさん
垢版 |
2017/09/15(金) 19:26:35.57ID:9COQlrBX
>>260
ワッチョイ無いから一人で自演しているんじゃないの?
まあ付けてもスマホと自宅だからバレないと思うけどさ
0262デフォルトの名無しさん
垢版 |
2017/09/15(金) 20:05:35.57ID:uW7EI8ic
結局2chでは幼稚で恥知らずな奴が最強で絶対に「勝つ」ことになってる。
北朝鮮と同じだ。
恥も自尊心も持たない奴には物理的な暴力以外何も抑止力にならないからね
0265227
垢版 |
2017/09/15(金) 21:36:21.07ID:Ay+AWdB+
>>235さん>>239さん
どうもありがとうございます
配列によって、動的にボタンを追加する方法を勉強するtestプロジェクトで、ボタン追加方法のテストだったんで
配列は適当でいいやとstring[]でやってたんですが、後々、配列に追加したら…とか色々実験していく内に
「あ…List<string>でやっときゃよかった…とは思ってみたものの、string[]ベースでいろいろな処理書いちゃったんで、
後に引けずにパッチ当ててるみたいなみっともないことになってしまいました
List<string>ならadd〜で簡単に追加できてたんでちょっと戸惑ってしまいました

参照型というものの性質がなんとなくわかりました


別の質問を
フォームデザイナーでContextMenuStrip(cms1)を作って
Form1_Loadの中にcms1.Show();
を書いても表示されないのに
Form1のクリックイベントでForm1_Loadを呼び出すとcms1が表示されるのはどうしてでしょう?
0268デフォルトの名無しさん
垢版 |
2017/09/15(金) 22:00:17.38ID:OqF1Hiig
>>265
Loadはフォームの表示前(this.Shownの前)だからコントロールが表示されない
フォームの表示後に呼び出したいものはShownのイベントメソッド内に書く
0270デフォルトの名無しさん
垢版 |
2017/09/16(土) 09:20:56.65ID:z+cPNeEM
Linqで起動10倍遅い君はみんなから無視されてるにも気付かず調子こいて嘘ついてたから
これからはちゃんと指摘してあげる
0272デフォルトの名無しさん
垢版 |
2017/09/16(土) 09:45:23.81ID:S/6lhX5d
そんなに俺のリサイタルが聞きたいのか?

linqを使う奴は遅いかもしれないからコアな処理では使わないでねってゴミクラスを量産する
○○ファイルの読み込み?たしか□さんのところでやってたよね?

しかし、残念なことにそのクラスはlinqが使われていたのです

   おっそwwww
0275デフォルトの名無しさん
垢版 |
2017/09/16(土) 17:18:29.80ID:NmFgsGO2
>>274
C++ を検討することを勧める


って言いたいけどこんなことを言い出す奴に技術力のあったためしはないから好きにしろ
0278デフォルトの名無しさん
垢版 |
2017/09/16(土) 19:27:34.42ID:YNlal7Li
プログラミング未経験の人向けのC#入門書を探してるんだが、お勧めの本があれば教えて頂きたい
0279デフォルトの名無しさん
垢版 |
2017/09/16(土) 19:31:37.12ID:QE5Dhgdp
独習C♯
猫でもわかるC♯

本屋で適当にプログラム本捲って自分が読める感じの探すのがいいけど
0284デフォルトの名無しさん
垢版 |
2017/09/16(土) 20:23:42.33ID:5Re80ay8
回り道に思っても一度Cを勉強した方が結局早いような気もするけど、どうかね。

構造化プログラミングやポインタの理解を経由せずに
いきなりC#で概念の洪水に晒されてちゃんと消化できるのか。
0287デフォルトの名無しさん
垢版 |
2017/09/16(土) 20:44:59.49ID:3905ntF4
C#をやってみようって決意したんだろうからそれを踏まえて指南すれば良いのでは?
デリゲート使う時に壁を感じたらそれはその時考えれば良い事で、その時だったら今よりはCに浮気するハードルは高くないはずだと思う
0288デフォルトの名無しさん
垢版 |
2017/09/16(土) 20:45:44.36ID:Zk6Irz58
んー、もちろんいらないといえばいらないんだけどね
C#あたりの今時のプログラミング言語になってくると、できることが多すぎるから
プログラミングまったく初めての人は、Cなどの昔ながらの言語で初歩を勉強してから
入門したほうが挫折のリスクは少ないし、それからのほうがC#の理解も容易だろうとは思う
で、もしポインタでつまづくようなら、全然むいてないってことだしw
0289デフォルトの名無しさん
垢版 |
2017/09/16(土) 20:48:46.79ID:hF16Uo8A
物理的なメモリレイアウトが見えてるほうがイメージしやすくて逆に簡単という意見もある
標準ライブラリも貧弱だから覚えること少ないし
TMPの誘惑に取り憑かれなければ回り道というほどでもないだろう
0290デフォルトの名無しさん
垢版 |
2017/09/16(土) 20:49:57.29ID:ikQV5H4G
プログラミング初心者でC#やりたいならCの構造化は邪魔になるだけだと思うけどなぁ
0291デフォルトの名無しさん
垢版 |
2017/09/16(土) 20:54:04.12ID:SMlIDWsJ
Cから入ると変な癖がつくからお勧めしないな
C自体がダメというわけじゃないがコーディングスタイルが古い
モダンな言語への移行を前提として古臭い書き方を廃した入門書があればいいけど
0292デフォルトの名無しさん
垢版 |
2017/09/16(土) 21:03:11.30ID:5Re80ay8
>>290
構造化プログラミングの理解はC#であろうが必須事項ww

>>291
別にCを極める必要はないよ。
Cの方が覚えることが少ない分恐らくクイックスタートが切れるだろう、ということ

Cでも「stdioって何?」みたいな最初は「おまじない」としてやり過ごすしかない部分はあるけど、
C#だと桁違いにそれが増える
0295デフォルトの名無しさん
垢版 |
2017/09/16(土) 21:20:26.04ID:S4dTswZ/
出来る事が最初から多過ぎる、てのは解る気がするわ

C#でも、GUIをしばらくお預けにしてCUIから教える分には
そんな複雑でも無いとは思うけどね
0298デフォルトの名無しさん
垢版 |
2017/09/16(土) 21:25:11.68ID:Pzxpwiqj
「猫でもわかるC#〜」は初心者には絶対に勧めない
自分がC#を勉強しようとして最初に読んでえらく悶絶したので

もし書名が「ざっくり覚えるC#文法」とかだったら納得もできる
猫や初心者にわかるように丁寧に説明している本ではない
他のプログラミング言語を知っている人が、さっとC#の文法を理解するにはたぶん良いのだろう

例えば、版によるかもしれないがこの本には「文字列はダブルクォーテーションで囲む」
ということがどこにも書かれていなかった
なのになぜか「char型はシングルクォートで囲む」という説明はある
要するに、文字列をダブルクォートで囲むという「常識」を知らないような初心者目線では書かれていない
そういうのが他にも多数ある

書名の付け方を間違えたのか、作者に初心者を慮る能力が欠けているのかはわからないが
初心者向け参考書なのに読んでもわからずググってやっと理解する、という繰り返しになるので
超初心者は他の本を買った方がよい
0300デフォルトの名無しさん
垢版 |
2017/09/16(土) 21:52:40.76ID:ikQV5H4G
>>292
もちろん理解しないといけないのは当然だけど、普通にプログラミングを重ねれば自然とそうなるでしょ
初心者で下手ゆ構造化プログラミングに慣れてしまうとオブジェクト指向の考え方が理解しづらくなるかなと思って
書籍は個人的に「実戦で役立つ C#プログラミングのイディオム/定石&パターン」がおすすめ出来るかな
0301デフォルトの名無しさん
垢版 |
2017/09/16(土) 22:00:36.81ID:S4dTswZ/
まず、「構造化プログラミング」と聞いて何を連想するかが人によってかなり異なるので
もっと別の言葉に置き換えた方が良いぞ

その上で、「プログラミングその物の入門に」という話なので
ンな手癖が付くほどがっつり深くやれって話でなく、触り程度に概念を理解するくらいで終わる話じゃないの
0302デフォルトの名無しさん
垢版 |
2017/09/16(土) 22:05:19.42ID:Zk6Irz58
>>300
とゆーか、オブジェクト指向自体が今時のプログラミング言語で初心者を挫折させる
元凶のひとつだからなw
オブジェクト指向がすんなり理解できるような人だったら、いきなりC#からで別段
問題ないし、よくわからないうちはとりあえずはわかったふりで無理して使わなくて
いーよと適切なアドバイスできる人が近くにいるなら心配ないんだけど
0303デフォルトの名無しさん
垢版 |
2017/09/16(土) 22:13:07.82ID:QE5Dhgdp
>>300
今読んでるけどおすすめだと思う
ただ未経験からいきなりそれ読んでも分からなそうな感じ
独習C♯で写経して、イディオムでパターン覚える感じというか、俺がそんな感じで進めてるところ
0304デフォルトの名無しさん
垢版 |
2017/09/16(土) 22:19:26.45ID:fBWSyi5J
俺が最初に読んだプログラミング本ってK&Rだったけど、アレはいい本だったな
0305デフォルトの名無しさん
垢版 |
2017/09/16(土) 22:19:46.48ID:ja70x9oy
スッキリわかる Java入門 第2版、2014

本当の初心者は、スッキリから行かないと、
オブジェクト指向が理解できない
0306デフォルトの名無しさん
垢版 |
2017/09/16(土) 22:37:39.28ID:ajkFqLJv
VS2017でC#勉強中です
ソースエディタでクラスやメソッドは折りたためますが、この折りたためる要素のソース内での表記の順番を入れ替えたいのですが、
動かす部分を全行選択して切り取ってペーストする以外に方法はないでしょうか?
気の利くエディタなので、この程度の事は一発でできそうな気もするのですが…
0308デフォルトの名無しさん
垢版 |
2017/09/16(土) 22:55:08.96ID:ajkFqLJv
ありがとうございます
折りたたんだ状態で全部を切り取れるんですね
気づかなかったです
更に
折りたたんで選択しとけばドラッグも出来ました
0310デフォルトの名無しさん
垢版 |
2017/09/17(日) 02:13:43.86ID:sWVhSEDv
ジェネリックなインターフェースってどうなんですか?できることはわかっているのですがどういうメリットデメリットがありますか?
string型もしくはUri型を引数にしてWebスクレイピングを行うメソッドなのですが、返り値はList<>で返したり、データクラスで返したりしたいのですがインターフェース化するとどういうメリットがありますか?
0312デフォルトの名無しさん
垢版 |
2017/09/17(日) 06:00:39.78ID:CHXibXnz
その要件でインターフェイスを使うこと自体には意味がある。けどそれがジェネリックなものである必要性はない。
0313デフォルトの名無しさん
垢版 |
2017/09/17(日) 09:28:39.99ID:rBV8stJp
>>306
行を選択(複数行可)して Alt + カーソル で移動、という方法もある
Shift + カーソルで行選択すればキーボードから手を離さず操作できる
0314デフォルトの名無しさん
垢版 |
2017/09/17(日) 10:01:53.64ID:TKU7DvDW
>>310
メリットを生み出すのは自分自身だ
どう使うかは自分がきめることだよ

無理にインターフェイスするとして考えられるのは
スクレイピングの結果の戻り値がIList<T>でとかそんな感じ
0315デフォルトの名無しさん
垢版 |
2017/09/17(日) 13:08:39.84ID:KkY0e3DN
C#でWindowsフォームアプリケーションじゃないものを(VC++でいうSDI)を作る場合って
Visual Studioでどのテンプレートを選択すべきなんでしょうか?

VC++はMFCのSDIテンプレートなんかあってとっかかりやすかったんですが、
C#はWindowsフォームアプリケーションかWPFぐらいしか
すぐに使えそうなテンプレートが見当たらなくて。。。
0317デフォルトの名無しさん
垢版 |
2017/09/17(日) 14:02:47.82ID:FKLlCzPO
>>315
VC++はフォームの作り方に難があるから目的別テンプレートが必要なので当って
winformsやWPFは自由にデザインしやすいから別に出来合いのテンプレートが必要ないと思う
0318デフォルトの名無しさん
垢版 |
2017/09/17(日) 16:57:27.84ID:KkY0e3DN
>>316,317
WPFとWindowsFormsというフレームワーク?を使わずにその他の「何か」を想像していたんですが、
そもそもその考えが間違っているようですね。出直してきます。
0319デフォルトの名無しさん
垢版 |
2017/09/17(日) 17:25:07.29ID:sWVhSEDv
>>312
やっぱりインターフェースだとジェネリックメソッドは意味はないのでしょうか?

>>314
設計が悪いのか返り値がIList<>オンリーじゃないですね
0321デフォルトの名無しさん
垢版 |
2017/09/17(日) 18:08:20.43ID:MRaZ3EJn
>>319
特定のコードじゃなく一般論の話をしてるなら、ちょっと短絡的過ぎない?w
IEnumerable<T>.Castなんかジェネリックだし、場合によっては使い道あるんじゃないの?

それと、前スレでもちょっと出てた話だけど、
個人的には必要もないのにインターフェイスかぶせても
生産性と可読性が下がるだけで何もメリットないと思うよむしろ
0323デフォルトの名無しさん
垢版 |
2017/09/17(日) 22:47:20.64ID:MRaZ3EJn
>>322
オプションの画面に検索機能がついてるんだからそれらしいワード入れれば見つかるでしょ
とりあえず「フィールド」でやってみたら?
0324デフォルトの名無しさん
垢版 |
2017/09/17(日) 23:17:30.87ID:AtDn9PVi
すみません見つからないんです
例えば『フィールド』で検索しても出てくるのはC#→コードスタイル→前半の中のものだけ
『フォント及び色』→にはC++用のいろいろな設定はあるんですが、C#の変数の表示を変えるようなものがどれかわからないんです
それっぽいな?というものを変更しても変わらず
変えられたのは行番号とコメントの色だけ

変えられないってことありますか?

ネット検索してもC++の例はあってもC#での例が見つからない
0325デフォルトの名無しさん
垢版 |
2017/09/18(月) 00:41:29.71ID:EYlFP7gd
>>324
VSはC#のために作られてるので()
c#の○○という表記じゃないだけ
下のほうにキーワードとか文字列とかいろいろあるでしょ
そのうちのどれかですとしか言いようがない
0329デフォルトの名無しさん
垢版 |
2017/09/18(月) 05:39:51.27ID:8KP9vlA9
>>327
眠い中どうもありがとうございます
雷鳴ってPC落としてたら…

やはり他の部分も変わってしまいますね
変数だけ色分けできたら使いやすいのに…
0330デフォルトの名無しさん
垢版 |
2017/09/18(月) 06:00:31.65ID:Yvok/w5K
クラスでListや配列を扱う勉強してます
以下はテキストボックスを使ってListをどう扱えば良いのかを考えている実験用ソースです

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
string hyouji;
TextBox textbox01 = new TextBox();
this.Controls.Add(textbox01);
hyouji = Test01();
textbox01.Text = hyouji;
}

private string Test01()//テスト用オブジェ作成メソッド
{
List<string> testList = new List<string> { "a", "b" ,"あ","ん"};
Testclass jikken;
jikken = new Testclass();
jikken.youso = testList;
return jikken.test();
}
}
0331デフォルトの名無しさん
垢版 |
2017/09/18(月) 06:00:51.39ID:Yvok/w5K
public class Testclass//クラスと配列のテスト用
{
public List<string> youso = new List<string>();
string modori;
public string test()
{
modori = string.Join(",", youso);
modori = modori + "-" + modori;
return modori;
}

};

class Testclassの中のtestメソッドで文字列に変換したものを
stringの戻り値を多段経由してテキストボックスに表示しています
クラス跨いでのControlの扱いが分かってないのですが、
のソースで戻り値を経由せず、Testclassのtestメソッドからtextbox01.textに直接書き込むにはどうしたら良いでしょうか?
0332デフォルトの名無しさん
垢版 |
2017/09/18(月) 06:02:16.29ID:Yvok/w5K
色々余計なことや面倒くさい宣言、ダサいことしてたりしますが、試行錯誤の名残なのでご容赦ください
0334デフォルトの名無しさん
垢版 |
2017/09/18(月) 08:33:57.39ID:7QJzTfH9
どっちかというと外に追い出すべきは
textBox.Textへの書き込みでは無くて
Test01メソッドの方
0335デフォルトの名無しさん
垢版 |
2017/09/18(月) 10:54:18.79ID:g7YoyWj5
WebBrowserのNavigating、Navigated、DocumentCompleteイベントがわかりません
ログ見てるとNavigatingが一度しか呼ばれていないのにNavigatedが2回呼ばれてDocumentCompleteが呼ばれる
自分の頭の中ではNavigating→Navigated→DocumentCompleteの順番だと思っているのですが違うのでしょうか?
参考になるページありましたらご教示お願いします
0336デフォルトの名無しさん
垢版 |
2017/09/18(月) 21:27:10.73ID:HjSStS87
初歩的かもですが、下記例の書き方で、Objectで引数を受け取るのにクラス変数の型に合わせてキャストして受け取る形が少し不自然に感じます。
この様な書き方で問題ないのでしょうか?
それとも他にいい感じの書き方がありますでしょうか?
class Test
{
private int a;
private string b;

public Test(params object[] param)
{
a = (int)param[0];
b = param[1].ToString;
}
}
0339デフォルトの名無しさん
垢版 |
2017/09/18(月) 21:35:57.16ID:JMdJN0yq
>>336
何を求めているのかいまいちわからないけど、その文だとparam[0]がキャストできないときにエラーで止まる
なので例えば
bool result = Int32.TryParse(param[0], out a);
に変える
この場合キャストできないときにresultにfalseが入る
0340デフォルトの名無しさん
垢版 |
2017/09/18(月) 21:38:06.59ID:HjSStS87
>>338
あくまで例って言う通り、実際はもっと多い引数だったり、場合によっては一部値を渡さない実装(デフォルト値設定)するつもりなんですよね
paramsって名前付き引数にできるのか?とか今調べてます
無理そうならDictionary使おうかとか考えてるところです
0341デフォルトの名無しさん
垢版 |
2017/09/18(月) 21:40:19.22ID:HjSStS87
>>339
ありがとうございます
TryParseの存在は知ってましたが、例外処理書いて載せるのめんどいのでとりあえずキャストだけ書いとけってやりました
すいません
0344デフォルトの名無しさん
垢版 |
2017/09/18(月) 21:48:03.01ID:HjSStS87
実際はこの画像の感じで色んな型の変数をセットしていくのに、コンストラクタにparamsで渡していって、受け取ってない場合は初期値入れるってのをやるつもりです。
https://imgur.com/a/f5Xg7
元々rubyで書いてあるプログラムなんですが、C#で移植しながら書こうとしています。
0347デフォルトの名無しさん
垢版 |
2017/09/18(月) 21:59:58.66ID:HjSStS87
>>346
rubyだと
def Initialize(params)
@stock_code = params[:stock_code]
@trade_type = params[:trade_type]
な感じで実装されてたので、C♯でも可変長変数と名前付きで渡せるかなーって考えてました・・・
それが無理なら変数をまとめて型にするか、Dictionaryかなって感じです
0348デフォルトの名無しさん
垢版 |
2017/09/18(月) 22:04:11.24ID:xV3zBIyo
なぜ素直にオーバーロードとかオプション引数&名前付き引数を使わないんだろう...
0349デフォルトの名無しさん
垢版 |
2017/09/18(月) 22:09:33.77ID:nAoTSCTK
>>344
コンストラクタでTryParseとかはアレなんでFactory使う

あと各データのできるタイミングやまとまりが違うものがフラットに混ざってるので
DBの正規化的なアプローチで少しデータ構造を考えといたほうがいいかもね
とりあえず移植したいだけなら型つくって移植して
後で困ってからリファクタリングしたのでもいいと思う
0351デフォルトの名無しさん
垢版 |
2017/09/18(月) 22:10:50.50ID:BIiVnPJO
>>344
コンストラクタでは初期値だけ入れて、newする時にプロパティに代入するのが良いと思う。

var trade = new Trade()
{
 stock_code = X,
 trace_type = Y,
....
};
0352デフォルトの名無しさん
垢版 |
2017/09/18(月) 22:21:57.04ID:HjSStS87
>>348
確かにそっちのが簡潔ですね・・・
元々長いのと後々追加する時を想定して少しこの辺りいい方法無いかなって模索してたので
>>349
Factoryは知りませんでした、調べてみます
>>351
こういうやり方のがすっきりしてそうですね、見た目も分かりやすそうな感じがします
ただsetはこれだとpublicですが、private運用のがいいのかとか考えていました。
プロパティ使って代入ってよくある使い方なのでしょうか?
0354デフォルトの名無しさん
垢版 |
2017/09/18(月) 22:42:34.01ID:HjSStS87
>>352
一先ず、プロパティのset使って運用しようかと思います
後々何かいい形に出来そうなら変更していこうかと思います
回答下さった皆様、ありがとうございました
0356デフォルトの名無しさん
垢版 |
2017/09/18(月) 22:51:27.14ID:IKMu/QN7
object[]で渡すなんてバグの温床だよそんなもん
自分で呼び出すときと処理書くときに困るだけだ

初心者なら普通に関数書くほうがいい
0357デフォルトの名無しさん
垢版 |
2017/09/18(月) 23:04:27.54ID:vOYXlSBd
直接プロパティを設定するのはあまり良くないよ
いつ外から書き換えられるかわからず、それに対応できるように作るのは無駄に手間がかかるしテストもクソ面倒になる
結局、いつでもプロパティを書き換えられるように見えるくせに初期化時以外に書き換えたら壊れる糞みたいなクラスが出来上がる
0361デフォルトの名無しさん
垢版 |
2017/09/19(火) 20:36:01.35ID:dvJOAkmr
メソッドの戻り値がListで、その中身を可変にした定義がしたいのですができますか?

インターフェースで List<Type> Select<Type>() と定義して
具象クラスで同じように定義、return List<string>(); とかやっても
"List<string>をList<Type>に暗黙的に変換できません。"とエラーになってしまいました。
0362デフォルトの名無しさん
垢版 |
2017/09/19(火) 20:38:26.15ID:sbE0HbQy
linuxサーバーに好きな言語使ってwebアプリ作れって言われたら、言語何使う?
0363デフォルトの名無しさん
垢版 |
2017/09/19(火) 20:46:10.64ID:HSXd4/vW
>>361
何言ってるのか分からないけど、自分で(メソッドの戻り値の型を)可変にしたいといいつつ、
List<string>という非ジェネリックな型を返すのは何なの?

意味がわからないよ
0365デフォルトの名無しさん
垢版 |
2017/09/19(火) 22:12:23.33ID:ekU6MC2y
>>361
まずTypeじゃなくてT使うように

メソッドのシグネチャーが
List<T> Select<T>()
なら実装は
return new List<T>();
0366デフォルトの名無しさん
垢版 |
2017/09/19(火) 23:49:48.63ID:WGzo2g/5
TabPageクラスを拡張してTabPageExクラスを作ったんですがTabControl.TabPages[index].Foo()を呼ぼうとしても呼べません
どうやったら呼べるようになりますか?TabPageCollectionを派生したクラスを作らないとダメですか?
0368デフォルトの名無しさん
垢版 |
2017/09/20(水) 00:00:37.73ID:pKHwkxOR
>>366
拡張した内容が分からない
まず拡張したクラスでなく元のコントロールで呼び出していないか確認
その上で拡張した内容を張らないと誰もわからない
0370デフォルトの名無しさん
垢版 |
2017/09/20(水) 00:21:20.04ID:OL4nI+z3
失礼しました。拡張した内容ですが以下のとおりです
タブブラウザを作りたいのでこういう風にしました
TabPageクラスにGoBack、GoForwardメソッドを実装しそれをメインフォームのボタンから呼びたいのです
そのためにはtabControlでどのタブが選択されているか取得しないといけないので苦労しているところなのです


TabControl
https://ideone.com/5QXD2p
TabPage
https://ideone.com/d9v3vu
MainForm
https://ideone.com/bByZtw
0371デフォルトの名無しさん
垢版 |
2017/09/20(水) 03:50:11.03ID:OL4nI+z3
無理なんですね、わかりました
やりたいことは各TabPage上にWebBrowserがあるのですがその進む戻るボタンをToolStrip上に実装したいのです
どうにか実装する方法ってないでしょうか?
0372デフォルトの名無しさん
垢版 |
2017/09/20(水) 06:47:27.86ID:f7lGjoxP
グローバルフックの事を学びたく、
http://d.hatena.ne.jp/myugaru/20071130/1196434749
にあるソースを実行したいと思います

新規でコンソールアプリのプロジェクトを作り
Formを追加し
ソースをネームスペース以外コピペして、エラー無くデバッグで立ち上がるも、コンソールとFromは出るものの、なんの反応もありません
「Visual Studio ホスティングプロセスを有効にする」を外せとのことですがVS2017Communityではその項目が見当たりません
デバッグでなくビルドしたexeでも同様です

どう改変したら動くようになりますでしょうか?
よろしくお願いいたします
0373デフォルトの名無しさん
垢版 |
2017/09/20(水) 09:28:35.33ID:QOv/22JC
>>370
まあ単純には、
var tabex = TabControl1.TabPages[x] as TabPageEx;
if (tabex != null) {
...
}
でもいいんじゃね
0374デフォルトの名無しさん
垢版 |
2017/09/20(水) 10:09:23.61ID:QOv/22JC
>>374
普通に動いたわ
新規プロジェクト作成でWindows Formsアプリケーションを選択
Form1.csを削除
Program.csを開いて既存のコードは削除してからリンク先のコードをペースト
F5
VSをアクティブにして出力ウィンドウにフォーカス移動して適当にキー入力するとmessage=KEYDOWNとか出力される

VS2017はホスティングプロセスがなくなったっぽい
ちなみにホスティングプロセスで動いてるかどうかは
デバッグ実行中にタスクマネージャ開いて
hoge.exeの代わりにhoge.vshost.exeが動いてるかどうかで判断できる
0378デフォルトの名無しさん
垢版 |
2017/09/20(水) 22:16:03.45ID:DOSxYj0U
>>377
static methodだからインスタンスメソッドとしては呼び出せない
String.IsNullOrEmpty(foo) と foo.IsNullOrEmpty の違い
0379デフォルトの名無しさん
垢版 |
2017/09/20(水) 22:42:10.58ID:eNb8jX7J
今となってはFormアプリケーションの作り方を覚えても無駄でしょうか?
現場でGUIアプリケーションはどのように作りますか?
0384デフォルトの名無しさん
垢版 |
2017/09/21(木) 08:27:22.37ID:3ejzg6/y
>>373
できました。ありがとうございます。

>>370を作る過程でマウスの中クリックでWebBrowserのタブ追加を行う際にTabControlクラスのメソッドを呼ばないと行けないんですが、この場合どうするのがいいのでしょうか?
・TabControlクラスのメソッドをTabPageクラスのコンストラクタに渡し、さらにWebBrowserのコンストラクタに渡す
・TabControlクラス内でパブリックな静的インスタンスを保持するプロパティを作成し、その静的インスタンスを介しWebBrowserクラスからメソッドを呼び出す
0385デフォルトの名無しさん
垢版 |
2017/09/21(木) 08:29:37.61ID:3ejzg6/y
>>384
途中送信してしまいました
設計上はどちらが優れているのか教えてほしいです
また他にいい案ありましたらお願いします
0387デフォルトの名無しさん
垢版 |
2017/09/21(木) 18:06:25.21ID:JtwQpz4i
>>383
それ聞いて安心したよ。ありがとう。
まずはFormアプリケーションを勉強することにした。
0388デフォルトの名無しさん
垢版 |
2017/09/22(金) 07:06:24.08ID:2m2DZ4nM
質問です
宜しくお願いしいます

アプリ設定の保存の最も初歩的な所から勉強しようと思っているのですが
http://qiita.com/taigaaa2/items/7f05ad950a57033892ae
↑が一番単純な構造で分かりやすいと思い、記述通りに設定し、ソースも必要部分をコピペで入力
エラーもでずにアプリも走りますが、設定を読み込んでいない(Projects\Hoge\Hoge\bin\Debug内のHoge.exe.configを弄っても何も反映されない)
保存もされていない(user.configがどこにも作成されていない)という状況です

どこか他に設定箇所があるのでしょうか?
よろしくお願いします
0390デフォルトの名無しさん
垢版 |
2017/09/22(金) 08:34:32.57ID:VB7mr2jw
ありがとうございます

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
Properties.Settings.Default.HozonString = this.txtHogeString.Text;
Properties.Settings.Default.HozonInt = int.Parse(this.txtHogeInt.Text);
Properties.Settings.Default.Save();
}
この部分の最終行ですよね?
書いてあります
0391デフォルトの名無しさん
垢版 |
2017/09/22(金) 08:50:55.65ID:VB7mr2jw
HozonStringに値を入れても反映されません…
なんかこのシステム自体が動いてないような…
0393デフォルトの名無しさん
垢版 |
2017/09/22(金) 09:06:14.05ID:VB7mr2jw
>>392
ありがとうございます
それでした!
Formのプロパティーとかもデザイナー使わないで設定する方法ばかりやってたんで、
デザイナーの方でハンドラの設定してないのすっかり忘れてました

LoadもFormダブルクリックするのすっかり忘れて…お恥ずかしい

ありがとうございました
凄く助かりました
0395デフォルトの名無しさん
垢版 |
2017/09/22(金) 09:13:00.30ID:XETG01Ra
データベース接続文字列ってあんな長いの手動で書くものなんでしょうか?
自動出力とかないのですか?
0397デフォルトの名無しさん
垢版 |
2017/09/22(金) 10:29:26.18ID:/H9tPbO8
データベースへの接続のウィザードとか使えば接続文字列勝手に作ってくれるだろ
0398デフォルトの名無しさん
垢版 |
2017/09/22(金) 10:33:15.19ID:eYJEmi08
>>395
DbConnectionStringBuilderからの派生クラス使うとか
Dictionary形式だから項目多いなら管理楽になるけど
0399デフォルトの名無しさん
垢版 |
2017/09/22(金) 10:37:52.34ID:usj2bMF0
接続文字列は全世代の遺物なんだけど
誰も改善しようとしない

ローカルルールだからけの文字列をわざわざ考えて
それをまたどこかでわざわざパースしてるんだから馬鹿らしい

connectionStringBuilderとかあるけどあれは文字列作って
それをまたパースしてるんだから同じく馬鹿らしい
0400デフォルトの名無しさん
垢版 |
2017/09/24(日) 07:01:15.21ID:fnb/dDo2
>>386
ありがとうございます
取り掛かっているのですがマウスのホイールクリックで新たなタブとして開きたいのですが
WebBrowser.Document.Clickイベントで躓いています
WebBrowser_DocumentCompletedイベントに「Document.Click += Document_Click」をの一文を追加し
Document_ClickイベントのマウスのHtmlElementEventArgs.MouseButtonPressedでホイールクリックを検知しようとしたところ
左クリックでも中クリックでも右クリックでもNoneと表示されています
WebBrowserのDocument上で中クリックを検出するにはどうすればいいでしょうか?
0401デフォルトの名無しさん
垢版 |
2017/09/24(日) 07:46:57.15ID:0E5Ac8qe
すみません
変な質問かもしれませんが、宜しくお願いします

Label hogehoge = new Label
とhogehogeというインスタンスのLabelを作ったとします
プロパティーで名前は指定していません
他のプロパティーも空という前提でお願いします

このLabelのダブルクリックでイベントハンドラーを作り
イベントの中に
Console.WriteLine(((Label)sender).Name);
としても当然名前は出てきません
この時、hogehogeというLabelを識別する文字列を取得したいのですが(この場合hogehogeが一番良い)、インスタンス名を取得 と検索しても出てこずです
名前の付いてないControlを識別する文字列を取得するにはどうしたら良いでしょうか?
Console.WriteLine(((Label)sender).〜のところに使えるいろんなコードをスニペットで調べてもそれっぽいものが無いのですが
そもそも名前を付けとけというのは別として、なんらかの方法で識別する文字列を取得できますか?

よろしくお願いします
0403デフォルトの名無しさん
垢版 |
2017/09/24(日) 08:19:31.40ID:Iu73uVEK
ないよ
欲しいなら自分で付けとけとしか言いようがないね
というかそもそも識別するのに名前である必要がある? ってところから検討しないと
0405デフォルトの名無しさん
垢版 |
2017/09/24(日) 09:00:09.85ID:N5BpuRhH
>>401
名前以外で固有ってハンドルくらいじゃね?
自動生成とかで名前を付ける手間を省きたいとかなら>>403の通り名前である必要が無いし
0406デフォルトの名無しさん
垢版 |
2017/09/24(日) 09:27:14.32ID:0E5Ac8qe
>>404
自分もデバッグ用にと思ったんです

>>403>>405
どうもありがとうございます
やはりなさそうですね

色々実験している時に、一度何かの間違いで、forのLoopの中で、インスタンス名?も名前も変えないControlを複数作って配置したことが有って、
何故かそのまま動いて、それぞれ個別に識別してるようなので、何が別の識別要素でもあるのかな?と思ってお伺いしました
ありがとうございました

>>402
nameofは新しいものらしく、情報が少なくて私には使い方がよくわからず
ちょこっと説明みたところ「メンバ hogeの名前は"hoge"」…みたいな使い方?
入り口の入り口にいる自分には何が何やら
nameof(sender)をやってみたら"sender"出ましたw
nameof((Label)sender)は受け付けてもらえませんでした
0407デフォルトの名無しさん
垢版 |
2017/09/24(日) 11:36:28.18ID:T/MiKQPL
変数名を取得したいんじゃなくて
インスタンス作成時にコントロールのNameプロパティに変数名を自動でセットしたいの?

そんな機能は存在しないから自分でシコシコ手書きでやっとけ
0408デフォルトの名無しさん
垢版 |
2017/09/24(日) 11:55:06.77ID:1OC4vxE7
リフレクションでもないんかな?
msのコントロールにもインスタンス突っ込むとメンバ名が出てくるのあるけどね
変数名は無いのか
0409デフォルトの名無しさん
垢版 |
2017/09/24(日) 11:55:11.39ID:E+MF96aa
リフレクションでもないんかな?
msのコントロールにもインスタンス突っ込むとメンバ名が出てくるのあるけどね
変数名は無いのか
0411デフォルトの名無しさん
垢版 |
2017/09/24(日) 12:27:00.23ID:N5BpuRhH
Name属性がなくてもsender==label1とかの識別ならできるけど中でハンドル比較しているんじゃないかな
だからどうしても出したかったらフィールドの一覧から一致するハンドルを探せばできなくはない
0412デフォルトの名無しさん
垢版 |
2017/09/24(日) 12:40:22.57ID:g05veIjA
>>406
Formに配置したコントロールは、Controlsプロパティで取得出来る。
Controls.Where( x => x is Label )とかやればLabelコントロールに絞り込めるけど、それ以上は判別しようがないな。
0414デフォルトの名無しさん
垢版 |
2017/09/24(日) 13:12:02.52ID:U4nAGnPY
設計なんて大げさなものじゃなく、考え方が間違ってるねw
なんか盛大に勘違いしてるというか

なぜNameをIDにしたいなら素直にNameを設定しないのか意味が分からない
何がしたいの
0415デフォルトの名無しさん
垢版 |
2017/09/24(日) 15:12:59.43ID:KcVpSqdX
変数名とNameで2回hogeと書くのが冗長だってんでしょ
是非についてはどうでもよすぎるのでコメントしない
鼻くそでもほじってる方がマシ
0416デフォルトの名無しさん
垢版 |
2017/09/24(日) 16:08:08.69ID:F2yzHt0b
変数名は前まではプログラムする人のためにあって
実行環境まで残ってないものだった

最近は変数名が残るようになったので使おうとする人が多いけど
もともとそういう種類のものじゃないんだよ
0418デフォルトの名無しさん
垢版 |
2017/09/25(月) 01:09:43.42ID:T67/GWI3
自己解決しました。
Document.ClickイベントではなくDocument.Linksのほうに一つずつMouseDownイベントを追加することでできました
これは解決済みなのですが、すっきりしないので確認させてください
Document.LinksのMouseDownイベント内でDocument.GetElementFromPointメソッドに渡す引数ですが、
MousePositionやOffsetMousePositionを渡すようにしているページがかなりあったのですが、どっちも使えずでClientMousePositionを渡すようにしたのですが
.NETのバージョンがあがるにつれ、変わったのでしょうか?
0419デフォルトの名無しさん
垢版 |
2017/09/25(月) 02:40:11.77ID:60Ft387g
パネルに画像などを追加していった際、描画範囲より外に出てしまった場合に
AutoScrollをtureにするとスクロールバーが表示されますよね?
縦方向のスクロールバーが本来は右側に出ると思うのですが、左側に出てしまいます。
すごく違和感があるので右側にしたいのですが、調べてみても特に設定する方法がみつからないのですが、
なぜなんでしょうか?
0421デフォルトの名無しさん
垢版 |
2017/09/25(月) 02:47:25.81ID:60Ft387g
>>420
無事解決しました。
プロパティを触っているときにうっかりRightToLeftをYesにしてしまっていたようです、ありがとうございました。
0422デフォルトの名無しさん
垢版 |
2017/09/25(月) 08:12:41.42ID:OL/9MGvm
質問です。ボタンの外観が変わらないのです。
http://or2.mobi/data/img/171707.png

画像の左側がデザイン時、右側がデバッグ時です。
左側のデザイン時にしたいのですがどうしたらいいですか?
FlatStyleを変更しても変わりませんでした。
0426デフォルトの名無しさん
垢版 |
2017/09/25(月) 13:11:47.58ID:T67/GWI3
何度もすいません
TabControlとWebBrowserを使用し、タブブラウザを作っているのですがFirefoxのアドオンにあるツリー型タブのようにツリー構造(親タブ子タブ)みたいにしたいのですが
どのようにすればできるのでしょうか?TabControlでは無理なのでしょうか?
0427デフォルトの名無しさん
垢版 |
2017/09/25(月) 13:49:11.12ID:IwLQLx8X
無理ではないかもしれんが一から作ったほうが早そうというかストレス少なそう
0429デフォルトの名無しさん
垢版 |
2017/09/25(月) 14:52:47.35ID:jVT7FFhT
みんな苦労して勉強して自分の作りたいものを作ってんじゃないの?
それを一言でどうすればいいんですかって虫が良すぎる気がする

ツリー型タブってどういうものか知らないけどちょっと画像見たら
ただアイテムが親子関係がありそうに見えるように作ってあるだけに見える

あああ
いいい
うううう



あああ
 いいい
 うううう
にしただけ
まあタブの機能は自分でなんとかするしかないね
0431デフォルトの名無しさん
垢版 |
2017/09/25(月) 18:10:02.71ID:T67/GWI3
一から作るということが想像できませんでした。
インデント?ツリー構造?どうやって作ればいいんだろうという感じです。
どういったことを勉強すればよいでしょうか?
0432デフォルトの名無しさん
垢版 |
2017/09/25(月) 18:42:41.37ID:ZfFz64Lf
>>431
上に書いてもらってるじゃん
ツリー構造はTabControlじゃどう考えても無理だから「一から作ったほうが早そう」ってなるんだよ
0433デフォルトの名無しさん
垢版 |
2017/09/25(月) 18:55:16.09ID:ON9Li960
自分でやったことないのに無責任に言うけど、Windows FormならTreeViewを
継承して拡張でいけるんじゃない?

なんなら素のTreeViewでも機能的な要件は満たせるよねたぶん
0434デフォルトの名無しさん
垢版 |
2017/09/25(月) 23:37:09.27ID:y0MyGTE+
Linqについてなのですが
List<int> list = new List<int> {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
のようなListを
{0, 1, 2} {1, 2, 3}{2, 3, 4}・・・{8, 9, 10}
のような感じで取得しながらLinqを記述する方法ってあるのでしょうか?

Take(3)やWhereの組み合わせで出来るのか、Indexをあらかじめ列挙して対応させるしかないのかと考えています
Linqで書かない場合はコードは長くなりますが書ける状態です
0435デフォルトの名無しさん
垢版 |
2017/09/26(火) 00:05:24.65ID:lY8FoU4I
>>434
Ix(Interactive Extensions)のBufferに似てるけどそのまま使えないので、
自作の拡張メソッドでも作れば?
0437デフォルトの名無しさん
垢版 |
2017/09/26(火) 00:42:46.55ID:9BhvI/Vw
>>435
>>436
forとYieldでこの形に出来るんですね
望み通りの動きの上、コードもスッキリしてて凄いです
ありがとうございました
0438デフォルトの名無しさん
垢版 |
2017/09/26(火) 02:27:19.94ID:WWZ5IF5C
VisualStudio2017でスニッペトが壊れました。
cw tab tabでConsole.WriteLine()となるべきがconstになっちゃいます!
どうすれば直りますか?
0439デフォルトの名無しさん
垢版 |
2017/09/26(火) 03:52:06.10ID:jDIKRy4A
VS2017で勉強してます
https://msdn.microsoft.com/ja-jp/library/bb546972(v=vs.110).aspx
このページのドキュメントアウトラインでColumnDefinitionsなどの要素が表示されません
https://i.imgur.com/I7U1sSH.jpg
Glidを展開しても3個の配置したControlしか表示されません
バージョンの違いなのかとも思うのですが、詳細を表示するにはどうしたら良いでしょうか?
0440デフォルトの名無しさん
垢版 |
2017/09/26(火) 08:27:29.19ID:Vyr7hCJe
LINQが使えるって言えるのってどのくらいから?
Select、Where、Orderbyが使えたら使えるって言ってもいいんかな?
0441デフォルトの名無しさん
垢版 |
2017/09/26(火) 09:26:15.62ID:po+Ovxs3
>>440
joinもgroup byも必須
SQLは開発者の常識だから、一通り使いこなせないとできるとは見做されないよ
まずはSQLの本で普通にSQL覚えるのがいいのでは
LINQより遥かに重要だよ
0442デフォルトの名無しさん
垢版 |
2017/09/26(火) 09:51:36.95ID:QFKO2nVy
テーブルレイアウトパネルを動的に追加し
列の幅をパーセントで指定しようと思ってます
https://ideone.com/lK68fg
の16行目で
インデックスが範囲を超えています。負でない値で、コレクションのサイズよりも小さくなければなりません。
とエラーが出て止まってしまいます
同行を
testLayoutPanel.ColumnStyles[0] = new ColumnStyle(SizeType.Percent, 50);
と置き換えても同じです

ColumnCount = 2;
としているので、インデックス0でエラーが出るのがよくわかりません
何を間違えているのでしょうか?
よろしくお願いします
0445デフォルトの名無しさん
垢版 |
2017/09/26(火) 11:06:45.24ID:iExFW+NQ
LINQのQはqueryなんですが...
どうでもいいんだけどメソッド形式をLINQと呼ぶのも変だよね
MSって昔から用語をないがしろにしてるよね。
0447デフォルトの名無しさん
垢版 |
2017/09/26(火) 11:24:26.71ID:KX2+W8jQ
LINQは検索とソートと重複除去でとっても便利!みんなも使ってね!
0448デフォルトの名無しさん
垢版 |
2017/09/26(火) 12:02:41.55ID:Vyr7hCJe
なるほどありがとう
今思い出しながらGroupByとJoin戦ってるけど使い方わからん
SQLのやつならわかるけどLINQでどう書くんだ?

var list = new[] {
new {Name = "A", Uri = 150},
new {Name = "A", Uri = 160},
new {Name = "B", Uri = 16},
new {Name = "B", Uri = 1000},
new {Name = "B", Uri = 1000}

};

var query = list.Where(x => x.Name == "A").GroupBy(x => x.Uri);

foreach(var union in query)
{
Console.WriteLine("Name = {0}", union);
}
0450デフォルトの名無しさん
垢版 |
2017/09/26(火) 12:39:26.31ID:iExFW+NQ
>>449
説明必要?
統合された結果出来たのはクエリ式。

ただのメソッド呼び出しが「言語に統合」なんかされてるわけないでしょ
0452デフォルトの名無しさん
垢版 |
2017/09/26(火) 13:01:09.22ID:iExFW+NQ
だからそれはクエリ式。
メソッド形式とクエリ式の違い分かります?
ボケてるのかマジボケなのかどっちよ
0453
垢版 |
2017/09/26(火) 13:07:09.76ID:9oRLnNit
queryってクエリ式だけではなくて、問い合わせの意そのものを指してんじゃ無いの?
0460
垢版 |
2017/09/26(火) 14:46:26.80ID:9oRLnNit
クエリ式に関してはQuery expressionときちんと明記しとるな、英語版MSDNは。
0461デフォルトの名無しさん
垢版 |
2017/09/26(火) 15:18:00.49ID:SDiSqFpw
###HUM###
000-K,AZ,0,1,
001-KI,L,I.T,DEF,11.2,TE,F,0.12235,
002-EM,OBLA,7##END
0462デフォルトの名無しさん
垢版 |
2017/09/26(火) 18:57:00.26ID:ibL24X8W
>>442
testLayoutPanel.ColumnStylesのコレクションが無い
まずデザイナで作ってみて要素確認してから動的に追加する方法を考えるべき
0463デフォルトの名無しさん
垢版 |
2017/09/26(火) 19:42:11.94ID:QFKO2nVy
>>462
ありがとうございます!
https://ideone.com/GBSGtn
デザイナを参考にこうしたところ、テーブルレイアウトパネルを動的に追加することはできました

で、ご指摘のコレクションですが、
ColumnStyle(SizeType.Percent, 33F)をnewでaddしてるということは、
テーブルレイアウトパネルには、わざわざ指定して追加しないとコレクションそのものが空で、
それを指定する形だったのでインデックスの範囲を超えていたという解釈で良いのでしょうか?

まだこういうコレクション(プロパティーが入ってる)を扱ったことがなかったので、完全には把握してませんがなんとなく、ふわっとした感じですが理解できた気がします
とりあえず行も列も動的に追加すること無く、この設定時のパーセンテージで表示できればいいので、今のところこの表記方法で目的達成できました
助かりました

ありがとうございました

( ・ω・ )。o(初心者にはMSのサイトも、他の検索に出てくるサイトもわかりにくずらかった…)
0465デフォルトの名無しさん
垢版 |
2017/09/26(火) 20:59:46.14ID:ErS49Y5u
Rxで過去N回に渡って発行された値を列挙する方法ってないですかね?
2回分取るだけなら同じストリームのSkip(1)とZipすれば行けるらしいんだけど
0467デフォルトの名無しさん
垢版 |
2017/09/26(火) 22:05:27.53ID:ErS49Y5u
>>466
イマイチ理解が追いついてないんだけど、例えば0,1,2,3,4,5って値が流れてくるストリームをBuffer(3)で待つと、

{0,1,2} <- OnNext(2)のとき
{3,4,5} <- OnNext(5)のとき

って流れてくると理解してるんですが、

{2,1,0} <- OnNext(2)のとき
{3,2,1} <- OnNext(3)のとき
{4,3,2} <- OnNext(4)のとき
{5,4,3} <- OnNext(5)のとき

っていうのもBuffer/Windowできるんですか?
0470デフォルトの名無しさん
垢版 |
2017/09/27(水) 18:03:24.23ID:t8u46Wok
>>456
めちゃくちゃ悪いですね
group byとjoinだけではなくLINQは全てクエリ式で書くようにしたほうがいいんですかね?
0473デフォルトの名無しさん
垢版 |
2017/09/27(水) 21:06:07.02ID:Z70BqHKV
LINQの話はするなって言わなかったっけ?
このスレで取り扱うのはC#2.0までですよっと
0475デフォルトの名無しさん
垢版 |
2017/09/27(水) 21:39:31.74ID:x0z96+G9
linqの話題って話した後の
だからなんだよ感が強いな
99%がlinq使わなきゃ書ける
みたいな奴が質問しにくんの

使わなきゃいいじゃんw

自分もよくわからないし
おそらく他人もそのコードみても
よくわからんよなw

言語として駄目じゃねぇ?
わかりにくいし
実際わからなくてお前質問してんじゃん

でもわざわざlinqで書こうとするんだよな
実行速度も遅いのに

えー?なんでー?そんなことするのー?

って俺は思う
0477デフォルトの名無しさん
垢版 |
2017/09/27(水) 21:51:41.07ID:Bof8gFB+
Linq使うと起動が10倍遅い君はま〜だ同じこと言ってるの?
はやく勉強しなさい
0479デフォルトの名無しさん
垢版 |
2017/09/27(水) 21:59:47.93ID:TLU7WwAh
Linq遅い君は
.net使う奴はダメだ
アセンブラで全部かける、1000倍速いって言ってるのと同じ
0480デフォルトの名無しさん
垢版 |
2017/09/27(水) 22:04:23.68ID:Bof8gFB+
>>479
ほんとそれ

以前もなんでC#使ってるの?って皮肉込めて言ってあげたのに
無知すぎて自分が馬鹿なこと言ってるって気付いていないんだよなぁ
0481デフォルトの名無しさん
垢版 |
2017/09/27(水) 22:06:16.57ID:x0z96+G9
>>479
その言い分もなんかズレてる気がするんだよなー

お客さんにメリットないし
アプリの品質って面でもぶっちゃけ微妙だよね
上がってるのか下がってるのか
甲乙つけがたい
0483デフォルトの名無しさん
垢版 |
2017/09/27(水) 22:13:05.64ID:x0z96+G9
>>482
いやー
でもこの労力を支払ってまで覚えることか?
っていうと絶対その価値はないような?
0485デフォルトの名無しさん
垢版 |
2017/09/27(水) 22:23:00.06ID:x0z96+G9
>>484
要はお前ら何か作りたいものがあるわけじゃなくて
ただ、暇なんだよな
プログラムって組めるようになっちまえば差なんか無いもんな
0486デフォルトの名無しさん
垢版 |
2017/09/27(水) 22:26:43.20ID:Bof8gFB+
>>485
馬鹿が何言っても戯言でしか扱われないよ
だからお前は底辺なんだよ
はやく勉強しなさい
0489デフォルトの名無しさん
垢版 |
2017/09/27(水) 22:43:09.62ID:TLU7WwAh
労力?
Linqって苦労して身に着けることなのか?
いくつか覚えることあるけどその後は使うだけだぞ?
0493デフォルトの名無しさん
垢版 |
2017/09/27(水) 23:05:47.18ID:TLU7WwAh
複雑なのは置いといて
普通のは普通に使えるでしょ?

それじゃダメなのか?
0494デフォルトの名無しさん
垢版 |
2017/09/27(水) 23:11:04.12ID:L0g4oP1E
>>493
こんな簡単に理屈を捻じ曲げるのが大得意
否定こそ正義みたいなのが未だに文化だよな
疲れないんかな?
0498デフォルトの名無しさん
垢版 |
2017/09/27(水) 23:56:02.90ID:yfRQCwYR
コードろくに書けない連中がここでデカい顔しているだけだろ。みっともない
0503デフォルトの名無しさん
垢版 |
2017/09/28(木) 01:11:11.82ID:3FmP7sWc
> ID:sNRbvHHL

世界中で使われてる現実を直視できず否定するなら
世界で使われてない証拠を出せよ
こいつの頭はお花畑か?プログラマー失格。向いてないから肉体労働でもやってろ
0510デフォルトの名無しさん
垢版 |
2017/09/28(木) 09:31:09.75ID:lt1k4/jx
クラスなんか使うなとか、 正規表現なんかイラネとか 昔からこういうのずっといるじゃん。
そんなやつを叩く必要は全くない。 そっすねって言っとけばいい。
0511デフォルトの名無しさん
垢版 |
2017/09/28(木) 09:31:45.87ID:sNRbvHHL
linq友の会スレもうすぐ十周年じゃねーか!w
10年かけて1スレも消費できずに要るとかwwww
0513デフォルトの名無しさん
垢版 |
2017/09/28(木) 09:36:58.47ID:lt1k4/jx
for (int i = 0; i < array.Length; i++) みたいなほうが見やすいって人も世の中にはいるんだよ。
理解はしなくてもいいけど、 そういう人がいることは現実なので受け入れなくてはならない。
0515デフォルトの名無しさん
垢版 |
2017/09/28(木) 09:39:01.33ID:lt1k4/jx
使わない言い訳も、昔からの決まり文句があって、
こんなの誰も読めない、使ってないって言うんだ。
0516デフォルトの名無しさん
垢版 |
2017/09/28(木) 09:40:05.55ID:lt1k4/jx
上司だったら会社辞めたり、部下だったらまあ、それなりのことは言うだろうけど

まあ、他人なら そっすねー で終わり。
0523デフォルトの名無しさん
垢版 |
2017/09/28(木) 10:02:37.59ID:6PyDG+uC
ID:sNRbvHHL

こいつみたいな出来の悪い子供を産んでしまって両親はさぞ悔やんでるだろうな
0524デフォルトの名無しさん
垢版 |
2017/09/28(木) 10:04:30.45ID:6PyDG+uC
ID:sNRbvHHL

現実を直視できないガチの障害者
Linqで起動が10倍遅い異世界の住人だろ
0525デフォルトの名無しさん
垢版 |
2017/09/28(木) 10:05:13.86ID:6PyDG+uC
ID:sNRbvHHL

親に生まれてきてごめんなさいしてこいよ
それか親も障害者か?だからお前みたいなキチガイが産まれたわけ?
0530デフォルトの名無しさん
垢版 |
2017/09/28(木) 13:32:50.85ID:gLDY8O4C
>>529
2013からドキュメントアウトラインが変わったみたいね
まあ気にしなくてもいいよ いちいちドキュメントアウトライン見に行くとかむしろ面倒だし
0531デフォルトの名無しさん
垢版 |
2017/09/28(木) 14:04:14.61ID:FxuZ7FTb
>>513
入門者の方へ

forはバグの温床だからiがいらない場合は
なるべくforは使わない方がいいです

10年前では考えられなかったけど
0538デフォルトの名無しさん
垢版 |
2017/09/28(木) 15:42:42.74ID:8/kuet0U
もう配列自体なくしてほしい
AddRangeみたいに配列を引数にするやつも
IEnumerable入れられるようにしてほしい
0539デフォルトの名無しさん
垢版 |
2017/09/28(木) 16:15:13.05ID:s3Uec9FD
パフォーマンス上必要だったりアンマネージド呼び出しで必要だったりするので
それは無理。

って書くとまた馬鹿が暴れ出すかもしれんが、ケースバイケースで柔軟に考えなきゃ。
馬鹿の一つ覚えは頭が悪い
0547デフォルトの名無しさん
垢版 |
2017/09/29(金) 01:29:49.55ID:ppl3WHHK
%%%3%%%
000-DOK<NAZE-0.8112162>
001-3800%\73NMB/1,81,2,NB"IKKI"%
002-91.81%ML7"8.122231746668193,43@ML.4@"%^23.1444
003-1.33321444718%"YLD""SO"%{71.%{62.1339816{331.422231765%<<<NL6
004-LOOP%Go To"000"%

VCL
0548デフォルトの名無しさん
垢版 |
2017/09/29(金) 05:59:25.49ID:+EJnnTQ3
ふと思い立ち、Release版の実行ファイルをバイナリで見たところ、
C:\Users\(ユーザ名)\Documents\Visual Studio 2017\Projects\CodeHelloWorld\CodeHelloWorld\obj\Release\CodeHelloWorld.pdb
という文字列が平文で入ってました。
コレでは個人情報がダダ漏れなので調べてみると、デバッグ情報でnoneを設定すると出なくなるという情報があったので、Releaseビルドではnoneを設定しリビルドしてみましたが、同様の文字列が入ります。
デバッグビルドの方もnoneにしてもでます、デバッグ版には入ってます(当然)
embeddedでビルドすると、平文ではでてこないようですが、コレもなんか変な気が…(難読化されて入ってる?そもそも埋め込みだからパスが入る必要性がない?)
Portableでも入るのを確認しています。
バイナリに平文でユーザー名(ソリューションの作成時のフォルダのフルパス)が入ることに対する情報があまりないのですが、皆さん気にしてないのでしょうか?
何か他に設定がいるのでしょうか?
よろしくお願いします。

情報
ttps://qiita.com/lainzero/items/27681ddc96638e33758b

中身は
簡素なhaloworldです
0549デフォルトの名無しさん
垢版 |
2017/09/29(金) 06:01:07.40ID:+EJnnTQ3
ミス:デバッグビルドの方もnoneにしてもでます、デバッグ版には入ってます(当然)
訂正:デバッグビルドの方もnoneにしてもでます。
0551デフォルトの名無しさん
垢版 |
2017/09/29(金) 07:37:19.51ID:+EJnnTQ3
>>550
ありがとうございます。
そうなんですか…
既知ならいずれ治るのかな。

embeddedでビルドすればとりあえず平文では見えないのでコレでやっちゃっていいのかな…

結構な大問題だと思うけど、日本語情報あまりないようだから、あまり皆さん気にしてない?
日本語でその手のバグ情報載ってる所ありますか?

とりあえずソリューションのフォルダ何処かへ移したほうがいいのかも?
0554デフォルトの名無しさん
垢版 |
2017/09/29(金) 10:56:57.85ID:xvT00RM2
スレ違いだけどOSのユーザー名はただのIDだから
フルネームの実名を入れる必要はないし入れちゃダメだよw

オフィスなんかでドキュメントの作成者に入る名前は別の設定であったはずだし
0556デフォルトの名無しさん
垢版 |
2017/09/29(金) 19:29:35.92ID:ASjioBld
自分で便利な拡張メソッドやカスタムコントロール作ったんですが、いろいろなプロジェクトで参照したい場合dllファイルにするしかないんですか?
できればdllファイルを使用せずに参照追加したいのですが、できないのでしょうか?
0559デフォルトの名無しさん
垢版 |
2017/09/29(金) 19:49:44.01ID:0RETi72f
>>556
EXEでもプロジェクトから参照出来るけど、プロジェクト分割してDLL化した方がその後楽になると思う
0561デフォルトの名無しさん
垢版 |
2017/09/29(金) 20:23:16.47ID:ASjioBld
>>557
参照したいものはクラスライブラリで作成しましたが、参照の追加→プロジェクトを見ても何もないんですよね

>>559
大きいものならそれでいいのですが、わずか200行くらいのものなので・・・
0562デフォルトの名無しさん
垢版 |
2017/09/29(金) 20:24:19.41ID:f2TxCfjK
>>556
運用を考えてない雑魚の疑問

作成物Aと作成物Bと
共通dllの作成物Sがあったとして

作成物Bには不具合があって
使用している共通dllの作成物Sを修正しました

このとき作成物Aもリビルドすんの?

お前が言ってる共通ソースで運用すると過去に作ったもの全リビルド
誰にも金もらえないわ
客に納めた最終納品物と違う物できるわ
正直ヤバイ
企業だと100個や200個じゃすまへんで
0564デフォルトの名無しさん
垢版 |
2017/09/29(金) 20:37:34.12ID:YWIP/X75
前もプロジェクト参照知らずにobjフォルダのバイナリを直接参照して
何かトラブってる人おったな
0566デフォルトの名無しさん
垢版 |
2017/09/30(土) 07:45:43.46ID:gi2C/W9N
入れ子になったオブジェクトのListをファイルとして保存、読み込みするのに、
バイナリファイルにして保存、読み込みしていたのですが、List数が千近くになると、
読み込みに5秒以上かかるようになってしまったので、高速化したいと思ってます。

調べてみるとDataContractSerializerがいいかなーとも思ったのですが、
DataMemberAttribute.Orderプロパティを設定していないと、メンバの順番が
数値やアルファベット順になるため、逆シリアル化するときに、正しくできないですよね?
メンバ数が多いので1つ1つ今のコードに設定するのもかなり苦行なんですが、
何かいい方法はないものでしょうか?
0569デフォルトの名無しさん
垢版 |
2017/09/30(土) 08:52:23.73ID:9JH7+33b
>>566
JSON.NETでいいよ
たかが1000件くらいテキストでも楽勝
BinaryFormatterとか昔からあるシリアライザは遅いので有名
0570デフォルトの名無しさん
垢版 |
2017/09/30(土) 09:03:00.42ID:B9VscmwP
>>566
> 数値やアルファベット順になるため、逆シリアル化するときに、正しくできないですよね?

大丈夫なはずだけどね。
0571デフォルトの名無しさん
垢版 |
2017/09/30(土) 09:05:50.60ID:B9VscmwP
自動実装プロパティとインスタンス変数の使い分けを教えてくれ。拙者には違いがわからぬ。
0573デフォルトの名無しさん
垢版 |
2017/09/30(土) 09:26:41.66ID:soKv7w/a
外部に公開するのは基本プロパティでOK

複数プロジェクト環境だとメンバ変数からプロパティに変更すると
参照している側もビルドしなくちゃいけなくなる
0574デフォルトの名無しさん
垢版 |
2017/09/30(土) 09:42:51.44ID:B9VscmwP
もう、インスタンス変数は全部自動実装プロパティで良いんじゃないの?
コーディングの負担も{get;set;}だけだし。
0576デフォルトの名無しさん
垢版 |
2017/09/30(土) 12:04:04.74ID:B9VscmwP
>>575
そんなん使わないでget; set;の中でlockしとけば良いんじゃないの?
自動実装じゃできないけど。
0579デフォルトの名無しさん
垢版 |
2017/09/30(土) 14:04:53.11ID:B9VscmwP
>>556
VS2017(VS2015以降?)には共有プロジェクトと言うのがある。
ソリューションに菱餅みたいなアイコンでプロジェクトが追加されて
他のプロジェクトから共有プロジェクトとして参照できる。
0585デフォルトの名無しさん
垢版 |
2017/09/30(土) 23:34:38.68ID:+8+f7Kzi
>>584
なに言ってんだ?
その話以外何があるんだ?
自分だけならプライベートリポジトリ使う意味が薄い

会社とかで数人以上なら意味があるけど自分だけで使うなら管理コストが増えるだけ
0586デフォルトの名無しさん
垢版 |
2017/09/30(土) 23:37:55.27ID:9JH7+33b
自分のところで作ったものも含めて完全にNuGetで管理するのは
自社サービスの会社でない限り現実的ではないわな
0587デフォルトの名無しさん
垢版 |
2017/09/30(土) 23:39:59.32ID:+8+f7Kzi
DLLが嫌って言ってるんだから普通にソリューションにプロジェクトをインポートするだけでいい
それを知らないから質問してきたんだろ?
0591デフォルトの名無しさん
垢版 |
2017/10/01(日) 14:55:40.54ID:vfm/Btvq
WPFわけわかんねぇええええええええええええええええええええ
動的に配置すんのめんどくせえええええええええええええ
なんじゃこれええええええええええええええええ

はぁスッキリした
Formの森に帰る・・・
0593デフォルトの名無しさん
垢版 |
2017/10/01(日) 18:50:37.49ID:9SrqGqLT
普通にやると面倒だから
自分のやりやすいようにヘルパークラスでも作ればいいと思うよ
(MSの人はそういう考え方はないみたいだけど)

動的追加が身につけばそれを使えばいい
0594デフォルトの名無しさん
垢版 |
2017/10/01(日) 20:18:09.95ID:jNXAXxmY
結局ASP.NET MVCはweb開発の市民権を得れたの?
0595デフォルトの名無しさん
垢版 |
2017/10/01(日) 20:30:42.79ID:tmbSNjLz
>>594
最近使ってる企業を見たことがない
しかもMVC自体が今後やって行けるのかどうか謎

asp.netシリーズは早く終息させたほうがいい
開発リソースの無駄
業務じゃASP.NET Coreはほとんど誰も使ってないんだから明日捨ててもほとんど支障がない
0600デフォルトの名無しさん
垢版 |
2017/10/01(日) 22:26:04.18ID:tmbSNjLz
調べたぞ
IISのシェアが伸びてると言って喜んでるけど
欧米では下がってる

中国で小規模サイトが増えててそこでIISのシェアが高い
中国ではasp.netの技術者がそこそこいる
0601デフォルトの名無しさん
垢版 |
2017/10/02(月) 14:14:55.86ID:F+1BxcRZ
Windows FormでPictureBoxにプログラムで描画した画像の上に
マウスドラッグで選択範囲を表すラバーバンドを表示したいと思うんだけど、

(1) 画像はBitmapに描画してPictureBox.BAckgroundImageに設定。
ドラッグ時マウス移動で必要部分を無効化してPainrイベントでラバーバンドを描画

(2) 画像もラバーバンドもPaintイベントて描画。ドラッグ時マウス移動で必要部分を無効化する。

(3) 画像はPaintイベントて描画。ラバーバンドはドラッグ時にMouseMoveイベントでCreateGraphcs使って描画。
ラバーバンド描画時、ラバーバンドが描画される位置の画像をBitBltでBitmapにキャプチャーしておき、
ドラッグ時のマウス移動ごとに無効化する必要がないようにする。

これら3つの実装方法を思いつくけど、他にもっと簡単な方法あります?
DrawFocusRectはさすがにビジュアル的に却下で
0602デフォルトの名無しさん
垢版 |
2017/10/02(月) 14:54:34.78ID:j0IOuO2e
つボタン(範囲編集モードボタン)+トラックバー+テキストボックス
昔、得意気にそういうの作ったら

ああ、いや、数値でしか入力しないからw

って言われてボタン+トラックバーとテキストボックスになった
トラックバーはあんまり使わないらしい
0606デフォルトの名無しさん
垢版 |
2017/10/02(月) 15:58:06.97ID:DB16o3JM
基底クラスでvirtual宣言したメソッドを
abstract付けた時のように派生クラスで必ずoverrideしないといけないようにする方法って、無いですかね?
0607デフォルトの名無しさん
垢版 |
2017/10/02(月) 16:36:15.51ID:rpp5PtTQ
>>606
abstractを付ける
必ずオーバーライドされるのに実装書く意味ないだろ?
superで呼びたいんなら代わりに別のprotectedメソッドにするか、
逆の発想でTemplateMethodパターンで差し替えたいところだけprotected abstractにして基底から呼べばいい
0609デフォルトの名無しさん
垢版 |
2017/10/03(火) 07:22:33.28ID:ObXIbUik
C#やるならCなんて絶対にやっちゃダメだろ

十中八九手続き型プログラム書き始める
0613デフォルトの名無しさん
垢版 |
2017/10/03(火) 09:16:05.26ID:40an6g8d
>>611
c#の変数はnewしなきゃいけないと思い込んてるヤツが少なからず居て、newした直後に別のインスタンスを代入とか。
参照と中身の区別の曖昧なやつ多すぎ。
0618デフォルトの名無しさん
垢版 |
2017/10/03(火) 09:51:52.72ID:tK4uic5q
>615
それは、
・cのポインタの概念を理解していれば
・c#の参照の概念を理解していれば

が等価じゃないの?

なんにせよ個人の理解力不足で、cを先にの理由にはならなくない?
0619デフォルトの名無しさん
垢版 |
2017/10/03(火) 09:52:06.38ID:3UnO7l2m
>>613
インスタンスの概念にポインタの理解が必須とか本当にポインタやインスタンスの概念理解していないのはわかる
0620デフォルトの名無しさん
垢版 |
2017/10/03(火) 09:54:28.45ID:3pqnorgz
Cやったやつが こうに違いないみたいな思い込みしてんだから
そいつ自体が証明してんだよな
0625デフォルトの名無しさん
垢版 |
2017/10/03(火) 10:49:35.60ID:40an6g8d
物事の上っ面しか見えないお前らにとってc言語は害悪でしか無いのは認めようw
0627デフォルトの名無しさん
垢版 |
2017/10/03(火) 12:14:14.43ID:t6jmh8jv
またアルツハイマー患者の繰り言が始まった。

どうでもいいけど、もともとの話は、入門者がいきなりC#みたいな今時の言語から始めるより
一旦Cを経由した方が回り道のように思えて結局近道なんじゃないかって話だ。

いつもの馬鹿の「老害ガー、俺スゲー」っていう意味不明な被害妄想と
その裏返しの自己陶酔の開陳、みたいな間抜けな話じゃないよ
0628デフォルトの名無しさん
垢版 |
2017/10/03(火) 12:19:42.20ID:ffaQ93cm
まあ、大抵のやつはポインタでつっかえて終了確定だから
c#のがええよ
そのうちでかいメモリ扱ってるうちにポインタ的要素は理解できるっしょ
0632デフォルトの名無しさん
垢版 |
2017/10/03(火) 13:11:42.49ID:SsPk+8PU
特にない。ハードウェアを知ることはプログラミングに関して必要なだけ
0633デフォルトの名無しさん
垢版 |
2017/10/03(火) 13:12:52.65ID:I5/niSoP
>>628
ポインターで挫折するようなやつは他の言語でも駄目だ。
cの入門書のポインターの説明もたいがいだがな。
0636デフォルトの名無しさん
垢版 |
2017/10/03(火) 14:39:24.69ID:tdeEXDBR
ポインターとかメモリアロケートの概念に関わらなくてもいいようにC#作ったのに
利用者の頭が進化しないと言語開発者が泣くわ
0638デフォルトの名無しさん
垢版 |
2017/10/03(火) 15:26:44.64ID:aqsVlxub
>>636
ポインタとメモリアロケーションは全く別物
まともなコード書きたければ
C#でもメモリアロケーションの理解は必須
0645デフォルトの名無しさん
垢版 |
2017/10/03(火) 16:09:58.24ID:hqS0jqGV
むしろ
入門書が無くて
簡単に画面が表示出来ない言語を知りたい
一般的なプログラミング言語でそんなのあんの?
0646デフォルトの名無しさん
垢版 |
2017/10/03(火) 16:11:02.55ID:kRn3xKyN
>>644
テンプレートを使ってWinFormなりWPFで画面は簡単に出ました。そこから先で頓挫する。c#は覚えなきゃいけない概念が多すぎる。msdnは奇怪翻訳でわけわからんし。
0648デフォルトの名無しさん
垢版 |
2017/10/03(火) 16:19:31.18ID:ffaQ93cm
>>646
ああ、他言語そこまで行かないから

そこまでできたら後はぶっちゃけなんでもできるな
WPFはさわんなくていい
winform覚えてな
直接納品しなくても
ちょっとしたツール作るときに
絶対役に立つから
0649デフォルトの名無しさん
垢版 |
2017/10/03(火) 16:22:37.95ID:JXAYZM0w
横から失礼
c#の入門書はまだ新刊が結構出てるよ

内容見たらどの本もWPFはなかったことになっててwinformsの使い方が出てる
0651デフォルトの名無しさん
垢版 |
2017/10/03(火) 16:25:05.66ID:hqS0jqGV
>>647
普通に考えてJavaとかな
SceneBuilderで簡単に作れる

それとGtkのバインドある言語とかね
Gladeあるから簡単だし
Qtなんかもっと簡単だろ

むしろお前はC#しか知らないんじゃないのか?
0653デフォルトの名無しさん
垢版 |
2017/10/03(火) 16:27:51.55ID:JXAYZM0w
c#は覚えることが多いというのは間違いじゃないです
cなんかと比べると多いです
クラスに始まり event delegate プロパティ インデクサ

そこからLinq ラムダ式 Task async/await パラレルといっぱい概念が出てくるので迷いがち

GUIにこだわらないならpythonでもやればいいと思います
0655デフォルトの名無しさん
垢版 |
2017/10/03(火) 16:34:15.08ID:JXAYZM0w
新規でjavaを覚えるとしたらandroidがらみか
仕事で使うためとかそんなのじゃないですか?

ホビーでjava使う人ってほとんど死滅したと思う
java単体の入門書も全然でてない
0657デフォルトの名無しさん
垢版 |
2017/10/03(火) 16:38:05.15ID:hqS0jqGV
>>655
俺の知り合いはkotlinやりたいけど
java知識無いとkotlinわからんって言って
今さらjava勉強し始めたよ

何事も決めつけは良くない
自分がそうだからって他人もそうだと思うのは良くない傾向
0661デフォルトの名無しさん
垢版 |
2017/10/03(火) 16:46:08.26ID:JXAYZM0w
goは新しいjavaだと思う

機能制約してコードの品質を中程度に保つための言語
0662デフォルトの名無しさん
垢版 |
2017/10/03(火) 16:46:40.70ID:hqS0jqGV
>>656
「javafx 書籍」でググれば出てくるよ

別にC#が好きでC#をやるのは大いに結構だと思う
俺もC#好きでやってるからこのスレ見てるし
そこは否定しない

でも大して多言語のことを知らんのに
多言語より優れてるとか吹聴するのはどうかと思うよ
0665デフォルトの名無しさん
垢版 |
2017/10/03(火) 16:57:59.86ID:ffaQ93cm
>>662
駄目だよ
ブログとかだと
scenebuilderいいみたいに書いてあるけど
バグってるよこいつ
すぐ読めなくなるじゃん
何が原因かわかんないし調査する気もないけど
0666デフォルトの名無しさん
垢版 |
2017/10/03(火) 17:01:17.11ID:ffaQ93cm
>>664
ずっとこいつだと思うよ
さっきから言ってるように
他言語で簡単にGUIを作る方法が無くなりつつある
0673デフォルトの名無しさん
垢版 |
2017/10/03(火) 17:28:32.83ID:HY14P4NI
DOMなんか何が難しいんだ
CSSはバッドノウハウ地獄で確かに難しいけどBootstrapみたいなのもある
0674デフォルトの名無しさん
垢版 |
2017/10/03(火) 17:34:54.89ID:QikjATz4
ちょっと思ったけど、web系の人って生産性が低い道具を擁護することで
自尊心と飯の種を得ている様は、昔のコボラーなんかと同じ構図だねw

本人たちは逆に俺様こそが時代の最先端だと思いたいところだろうけど
0675デフォルトの名無しさん
垢版 |
2017/10/03(火) 17:35:54.67ID:ffaQ93cm
いや、俺が欲しいのはhtmlやGUIのビジュアル編集ツールなんだけど
そういうのある言語ってc#ぐらいしか残ってないよねって感じ
0677デフォルトの名無しさん
垢版 |
2017/10/03(火) 17:39:17.69ID:ffaQ93cm
ホームページビルダーとかDreamWeaverって最近どうなんだろ?
ってそんなもん入門プログラム作成するのに引っ張り出すぐらいなら
やっぱりc#だと思うが
0680デフォルトの名無しさん
垢版 |
2017/10/03(火) 18:32:56.40ID:Wv0pCR1x
DBへの接続や読み書き等をクラス化しようと思うのですが、関数化したい機能が多すぎてDB関連クラスの中身が膨大になると思います
いいサイズになるように分けていきたいところですがどのような感じでクラス設計してるのでしょうか?
設計関連でおすすめの参考書等もあればお聞きしたいです
0681デフォルトの名無しさん
垢版 |
2017/10/03(火) 18:34:33.06ID:HY14P4NI
>>674
Webのデザイナなんかゴミみたいな単価で山ほどいるからね
それに、特に米国で顕著なパッケージ化の流れで、不特定多数向けにクォリティを高める開発形態が増えている
GUIの生産性はそれほど重要ではなくなりつつあるんだよ
0683デフォルトの名無しさん
垢版 |
2017/10/03(火) 18:44:37.30ID:HY14P4NI
>>680
理想を言えば、エンティティクラス自体に関連する処理を実装する
いわゆるドメインモデルってやつだ
682のリポジトリパターンはDBからのエンティティの取り出しと保存だけを抽象化するもので、
細かいトランザクションロジックの整理には役立たないよ
0685デフォルトの名無しさん
垢版 |
2017/10/03(火) 18:56:05.82ID:+VByLN2Y
SQLはXMLに書いてるわ
0686デフォルトの名無しさん
垢版 |
2017/10/03(火) 19:00:21.32ID:Wv0pCR1x
>>682-685
ありがとうございます
デザインパターンに詳しく無いので、この形がいいって回答はかなり参考になります
ドメインモデル、リポジトリパターンについてどういうものか調べてみます
0688デフォルトの名無しさん
垢版 |
2017/10/03(火) 19:12:54.47ID:+U401EVt
>>684
頭おかしいよねw

一つのクラスめっちゃでかくなるわ
どーすんだ?これ

って質問なのに
質問に対して全く答えてねぇのが笑える

ミソが腐っているのだろうか?
0689デフォルトの名無しさん
垢版 |
2017/10/03(火) 19:20:03.80ID:HY14P4NI
>>688
クラスを分けることを目的にするのは典型的なアンチパターンだからな
レビューでフォームクラスの行数オーバーで弾かれたから、イベントハンドラをそっくり別のクラスに移動するような阿呆を生み出しかねない
0693デフォルトの名無しさん
垢版 |
2017/10/03(火) 19:41:31.70ID:Wv0pCR1x
>>692
EntityFrameworkは最近使い方覚えて少し試してるところです
それでも基本的なところと機能別に実装したい中身ってあると思ったんですけど、自分の考え方のがおかしかったでしょうか?
0695デフォルトの名無しさん
垢版 |
2017/10/03(火) 19:53:17.11ID:N5+yK7+U
>>693
おかしくはないよ。
Entity Frameworkで不足だと思うところは補えば良い。
オレオレ実装(自己満足なだけの)にならなけりゃ。
0697デフォルトの名無しさん
垢版 |
2017/10/03(火) 21:12:10.82ID:F9jUpGNo
>>696
普通に開発用のDBに繋げよ
DapperならSQL直書きだろ?
テスト対象はそのSQLそのものなんだからDBが本物でないと何の意味もない
0698デフォルトの名無しさん
垢版 |
2017/10/03(火) 21:22:08.49ID:F9jUpGNo
補足
Dapperを直接使用してる箇所のテストは上述の通りだけど、
それ以外の部分もDapperがないとテストできないと言うならDapper云々以前に設計が悪い。
それこそリポジトリパターンを使うなりしてDapperに依存しないように差し替えるべきだな
0699デフォルトの名無しさん
垢版 |
2017/10/03(火) 21:28:24.12ID:38m+PlJN
日曜大工プログラマー(書店の本見て勉強)だとテストってやつがわからんのですが
テスト関連の書籍ってでてますかね
プロの方と素人との大きな違いはテストとバグフィックスなのかなって思うとるんですが
0700デフォルトの名無しさん
垢版 |
2017/10/03(火) 21:38:27.79ID:F9jUpGNo
>>699
用途の違いじゃね?
日曜大工プログラミングならモデルのロジックなんかほとんど無くて入出力とシステム制御のコードほとんどでしょ
そんなのテスト書いてもあまり意味ない
0701デフォルトの名無しさん
垢版 |
2017/10/03(火) 21:42:25.34ID:TvjHrbVD
環境をたくさん用意するのは趣味だと無理だろうね

仕様や性能、精度を満たしているかとか
色々な耐久テストとか負荷テストとか
自動でやったり人海戦術だったり

まあいろいろと
0704デフォルトの名無しさん
垢版 |
2017/10/03(火) 21:55:20.87ID:N5+yK7+U
>>699
プロと素人の違い?
プロならクライアントに要求されたものが糞だとしても要求通りに作り上げる。
用意された環境が数世代前のPCに長机、パイプ椅子だとしてもひたすら我慢。
我慢こそがプロの必須要件。
0710デフォルトの名無しさん
垢版 |
2017/10/04(水) 04:08:49.71ID:inVVPc+t
BindingContextの使い方がわからないのですが調べてみても記事がなく困っている状態です
DataGridViewのDataBingingと同じものなのでしょうか?教えてください
0711デフォルトの名無しさん
垢版 |
2017/10/04(水) 06:20:45.30ID:92yhAxWz
>>708
ワーカー?
日本のIT産業は奴隷産業なのだ。
奴隷からは何の新しい文化は生まれない。
韓国にさえ負けている日本がIT後進国である原因。
0712デフォルトの名無しさん
垢版 |
2017/10/04(水) 06:52:36.82ID:D0l3uaQA
奴隷みたいな働き方をさせられてる奴は結局その程度の能力なんだよ
そういう奴にも仕事があるか、そうでないかの違いだけ
欧米だと基本的にパッケージとオフショアだからね
0716デフォルトの名無しさん
垢版 |
2017/10/04(水) 10:17:41.36ID:4nywC7FJ
>>715
これは>>712が正しい。

むしろ本当は本人自身の能力にある問題を社会に問題があるかのようにすり替えて
自分を慰めている奴が多すぎるのが日本の問題。

簡単に言えばただの需給の問題。
アニメや映像制作の仕事もそうだけど、大幅に供給超過だから
質が低い者が買い叩かれているだけの話で、これは仕方がないどころか
むしろ社会的に好ましい。(そうでなければ需給のアンバランスの調整メカニズムにならないから)
0719デフォルトの名無しさん
垢版 |
2017/10/04(水) 10:46:01.75ID:65kSOn7U
いつでもいいからとりあえず請けてくれとか言って納期から2年過ぎてるタスクが手も付けないで積んだまま

よく怒らないで待ってるなぁって思う
しかもそういうタスク自分で持ってきてるくせに緊急だ緊急だってさらに積んでくる馬鹿な客

人もいないからプロジェクトが始まったら結構キツイ残業をさせられる
マジ、今もやめた方がいい
人がいないから一人に平気で2、3個プロジェクト投げてくる
出来もしないのに
0721デフォルトの名無しさん
垢版 |
2017/10/04(水) 11:00:00.61ID:4nywC7FJ
>>717
じっぱひとからげには言えない。

デキる人は足りてない。デキない人は大幅に青あってる。だから待遇が悪くなる。
それだけの話。
0722デフォルトの名無しさん
垢版 |
2017/10/04(水) 11:02:01.68ID:upJMOkRI
>>710
BindingSourceに役割を譲ってるから今から調べる意味はないと思うぞ
簡単に言えばデータソースを共有する範囲を決めるためのものだな
0725デフォルトの名無しさん
垢版 |
2017/10/04(水) 12:31:20.71ID:zotkLvwh
下級SEはExcelにテストパターンをずっと書くだけの仕事を何年もするって聞いたけど
本当なんだろうか?
0727デフォルトの名無しさん
垢版 |
2017/10/04(水) 12:34:31.64ID:zotkLvwh
IT業界でどんなお仕事なさってるのって聞かれたらなんて答えてるのかも気になる
0729デフォルトの名無しさん
垢版 |
2017/10/04(水) 12:37:22.06ID:eKN2AIaa
>>724
正直、そこらへんの非IT会社の事務員でちょっとPC得意ですくらいの人間の方がExcel使えると思うわ
VBAどころか数式ちょっと使えば一瞬で終わるような単純作業を必死に手作業してる奴ばっか
ITプロフェッショナルって何なんだろうと思う
0731デフォルトの名無しさん
垢版 |
2017/10/04(水) 12:48:23.25ID:zotkLvwh
日立とかにいそう
地元の工業高校出て死ぬまでエクセル職人
でも中小企業のPGより給料がいいみたいな
0734デフォルトの名無しさん
垢版 |
2017/10/04(水) 14:42:16.26ID:aFhVtil1
あるオブジェクトのプロパティを取得しようとして、もしそのプロパティを持っていないと例外出ますよね?
どうすれば回避出来ますか?
0738デフォルトの名無しさん
垢版 |
2017/10/04(水) 15:32:21.88ID:mhZMhlTM
まずプロパティがあるかどうか訪ねないで、いきなりプロパティに繋げようとするからダメって事だよな?
いきなり知らない家にいって、ユマちんを出せって言っても通報されるみたいなもんだ。
0739デフォルトの名無しさん
垢版 |
2017/10/04(水) 15:39:22.84ID:ZtUzMtUQ
>>737
そもそも論としてそのプロパティ持ってないオブジェクトに
プロパティでアクセスできるコード書いてるのが問題なんだよ

そこじゃなくて違う所を見直そう
0740デフォルトの名無しさん
垢版 |
2017/10/04(水) 15:40:19.16ID:PsbRicdP
public int aaa;
public int aaa{get; set;}

この2つって全く同じ動き?
0741デフォルトの名無しさん
垢版 |
2017/10/04(水) 15:47:27.79ID:PsbRicdP
大したの組んだ時無いからわからないけど
get; set;で記述する利点ってなんですか?
0743デフォルトの名無しさん
垢版 |
2017/10/04(水) 15:50:18.77ID:vUJCH9qc
>>739
dynamicでexcelとか使おうとしてるんじゃないの?
で、バージョン違いでプロパティが無いとか。
0746デフォルトの名無しさん
垢版 |
2017/10/04(水) 15:59:30.46ID:PsbRicdP
>>744
>>745
あざす
Codelensも出るしファンクション?メソッド?のほう使ってこうと思います
0748デフォルトの名無しさん
垢版 |
2017/10/04(水) 16:05:33.70ID:inVVPc+t
>>722
わかりました

オブジェクト指向で詰まってしまったので聞きたいです
各コントロールのインスタンスを保持する変数って、親Formで基本は持っておくべきでしょうか?
タブ型ウェブブラウザーを作っているんですが、TabControl・TabPage・WebBrowserは各自TabPageの変数はTabControlの下、WebBrowserの変数はTabPageが持っています
これだと前回終了時のタブを次回起動時にリストアしようとするとすごい設計が悪くなります
どちらが良いのでしょうか?教えてください、ほんとはObserableCollectionを活用したいのですが、どう書けばいいのかわからず仕舞いです
0750デフォルトの名無しさん
垢版 |
2017/10/04(水) 16:25:32.68ID:eKN2AIaa
>>748
大域的な設計はトップダウンで考えよう
例えば、現在表示しているページのURLを管理するクラスがあって、
フォームはその内容を画面に反映させる&ページ遷移時に新しいURLを管理クラスに伝えると考えればいい
管理クラスはUIの細かいことを気にせずに状態の管理と保存・復帰だけを考えればいいし、
フォームは管理クラスの状態と同期するだけでいい
0751デフォルトの名無しさん
垢版 |
2017/10/04(水) 17:53:53.15ID:inVVPc+t
>>750
ありがとうございます。話を自分なりに理解するとタブ現在表示しているUrlを別クラスPageページクラスが持ち
Pageクラスを内包したPageListクラスでファイルへの保存・復帰処理を行い、Formクラスでインスタンスを持ちTabControlに渡し、
各タブで何を表示するかのコントロールはTabControlで行おうと思うんですが、こういう感じですか?
0753デフォルトの名無しさん
垢版 |
2017/10/04(水) 18:07:50.98ID:ZH15U2S2
>>751
全体の構造が憶測でしかわからないのに「これでいいですか」って聞かれても困ると思う
タブコントロールの各タブにPageListとかがぶら下がっていてそこを選択して表示するとかなんだろうけど
質問の仕方から見ても自分でもまとめられていないようだし、まず動くもの作ってから拡張していけば?
0756デフォルトの名無しさん
垢版 |
2017/10/04(水) 20:35:25.42ID:i6quWUAT
プロパティってgetset関数毎回書くのアホらしいので省略しませんか?ってのかと思ってましたけど、レス読んでると他に意味があるんでしょうか?
浅い知識しかないので気になりました
0757デフォルトの名無しさん
垢版 |
2017/10/04(水) 20:44:18.31ID:0TdBJUYX
>>756
>>745に書いてあるようにメソッドのように扱える
必要ないのならpublicとかinternalとかの変数にして好きにしたらいいと思う
0758デフォルトの名無しさん
垢版 |
2017/10/04(水) 21:14:51.00ID:ULvxLO80
>>756
書くのが面倒って言うより、ゲッターとセッターは
オブジェクト指向におけるオブジェクトの属性って概念の素直な表現になってないのが
美しくないというか、直感的じゃないよね
0759デフォルトの名無しさん
垢版 |
2017/10/04(水) 21:53:15.88ID:D0l3uaQA
データクラスを除けば、最近は作ったプロパティの大半が読み取り専用だわ
セッターいらね
0760デフォルトの名無しさん
垢版 |
2017/10/04(水) 22:33:20.23ID:X/chSHNo
>>751
current urlのコレクションを管理するクラスを自前で作って、そのコレクションをシリアライズ/デシリアライズするイメージだよ
>>750はわかりやすく書いてくれてると思うぞ

current urlのコレクションはMVCのModel
Viewに依存すべきじゃない
0761デフォルトの名無しさん
垢版 |
2017/10/04(水) 22:37:19.76ID:inVVPc+t
イベント実装しようとしていますが難しいですね
全然勉強してこなかったことが身にしみてきます
0762デフォルトの名無しさん
垢版 |
2017/10/04(水) 23:32:25.16ID:inVVPc+t
自分でイベントを書くときに思ったのですが、
イベントを発生させるときは、そのイベントがnullではないことを確認するのはなぜでしょうか?
0763デフォルトの名無しさん
垢版 |
2017/10/05(木) 00:08:10.31ID:kvz6wfH4
例外になるから

nullチェックを避けるために何もしないラムダ式を登録しておく方法もあるけど、
なんか馬鹿くさいのは確かだね

VBみたに専用ステートメン用意した方がよかったかも。
でもこのVB方式はカスタムイベントで問題が出るそうだけど
0764デフォルトの名無しさん
垢版 |
2017/10/05(木) 00:20:49.58ID:w76cxVZ0
今は ?. があるからどうでもいい
ソースでイベントでnullチェックしてたら古いソースなんだなと思う

そうnullチェックは昔話
0766デフォルトの名無しさん
垢版 |
2017/10/05(木) 07:15:53.39ID:gKycoOZO
業務システムなんですが、今どきeachでもないfor文の多重ループ書く人って流石にマズいですか

それとも普通でしょうか

他人の四重ループを見て世間ではどうなのだろうと思いまして
0767デフォルトの名無しさん
垢版 |
2017/10/05(木) 07:25:17.32ID:lN/7t8RB
>>766
ixyzとかあると簡単に4重ループできるぞ
どうやって回避するんだ?
i=オブジェクト数、x方向、y方向、z方向
ってなってたら俺はこのままのがいいと思うが?

多重ループの数でPGの実力見ようとしてるお前がキチガイ過ぎてどうにもw
0769デフォルトの名無しさん
垢版 |
2017/10/05(木) 08:51:15.85ID:nBCW+G24
名前の隠蔽とオーバーライドの違い・意義について教えていただきたいです

名前の隠蔽: 同じ名前のメソッドを派生先で作ると基本クラスの同名メソッドは見えなくなる

オーバーライド: 派生先でオーバーライドメソッドを定義することによりインスタンス化したオブジェクトの基本クラスの内容を書き換えること

ということで間違いないですか?
オーバーライドメソッドのこの「インスタンス化した後に内容を変更する」というのが多態性であるとネットであったのですが名前の隠蔽で様々なメソッドを定義して使うのは多態性に当たらないのですか?どうしてもこの違いだけわかりません
どなたかお願いします(><)
0770デフォルトの名無しさん
垢版 |
2017/10/05(木) 08:52:36.97ID:lN/7t8RB
状況によるよ
多重ループ避ける程度でいちいち意味不明なメソッド作られても困る
0773デフォルトの名無しさん
垢版 |
2017/10/05(木) 11:22:55.40ID:URIOD7FQ
>>766
本当に四重ロープが必要な処理で
最適化した結果ならしょうがない
個人的には業務システムでそう言う状況に出会ったことはないが
0774デフォルトの名無しさん
垢版 |
2017/10/05(木) 11:30:16.11ID:Bb6+6uGp
>>769
多態って何だ?みたいな哲学論(笑)は後回しにして機能的な違いだけに注目した方がいいよ。

http://www.atmarkit.co.jp/ait/articles/0209/11/news001.html
↑の記事にある通り、隠蔽の場合はインスタンスとそのインスタンスの入っている変数の型が一致している
場合のみ隠蔽したメンバーが呼ばれるのがオーバーライドとの違い

上の記事、オーバーライドより隠蔽を使うのが普通って言ってるような印象を受けるけど
実際は逆だからそこは勘違いしない方がいいよ

隠蔽はベースクラスの設計がおかしい場合の回避策みたいな感じでしか使われないと思う。
だからとりあえずはオーバーライドだけ覚えれば問題ない
0781デフォルトの名無しさん
垢版 |
2017/10/05(木) 23:14:11.64ID:Xseher3k
Console.WriteLine(“”);
string = Console.ReadLine();
の意味がわからんな。Console.ReadLineをstringに代入する所とか
0783デフォルトの名無しさん
垢版 |
2017/10/06(金) 00:39:00.40ID:HTxWyqCb
>>781
Console.ReadLine()で処理した結果の文字列を
stringという名前の変数に代入してる
name = Foo.GetName()と同じ
0784デフォルトの名無しさん
垢版 |
2017/10/06(金) 00:44:39.70ID:BZdgO6jG
さすがにそれは説明せんでもいいやろw
0785デフォルトの名無しさん
垢版 |
2017/10/06(金) 01:04:12.92ID:HTxWyqCb
>>784
そうかな? わかってたら「Console.ReadLineをstringに代入する所」なんて書き方しないと思うんだが
0786デフォルトの名無しさん
垢版 |
2017/10/06(金) 06:57:53.28ID:R65vFnX0
>>781
1行目:画面に1行空行を書き込む
2行目:ユーザーの入力を受け取り、Enterが押される(=改行)と、その1行を変数stringに格納
0787デフォルトの名無しさん
垢版 |
2017/10/06(金) 06:59:00.06ID:/+rBbbka
Form1のlowLayoutPanelに他のクラスからボタンを追加したい
という場合には
ttps://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1434882684
この内容を理解すれば良いのでしょうか?
0788デフォルトの名無しさん
垢版 |
2017/10/06(金) 07:21:39.66ID:/+rBbbka
ごめんなさい。とりあえず別の方法でお茶濁して解決しました
まだ↑のは理解が及びません
0791デフォルトの名無しさん
垢版 |
2017/10/06(金) 09:44:09.73ID:386xmGqT
>>762
なるほどです、イベントの中がNullの場合発生させないということなのですね
あと自分でイベントを定義するときInvokeメソッドを呼ぶのはなぜでしょうか?
0792デフォルトの名無しさん
垢版 |
2017/10/06(金) 10:14:27.91ID:UT/zOTND
拝む為さ。
0793デフォルトの名無しさん
垢版 |
2017/10/06(金) 10:41:08.98ID:R+OFu5Ep
>>791
>>792 も言ってるようにお祈りおまじないの部類。invoke無くても同じ。
UIスレッドで実行するためのcontrol.invokeとは別もん。
0794788
垢版 |
2017/10/06(金) 11:33:07.23ID:/+rBbbka
>>790
ありがとうございます

https://ideone.com/76njZo

public FlowLayoutPanel flowLayoutBase = new FlowLayoutPanel();
とForm1外に持ち出して、ボタン生成用のクラスをFrom1の継承クラスにしてもボタン現れず
で、こういうことじゃないだろう…ということで色々やってみて

外部クラスからインスタンス参照というのを参考に
https://ideone.com/TFCiQp
こんな形のメソッドに纏めて、そこを外部クラスから参照しようとするも、どう参照するのか…
恐らく何か的はずれなことしてると思いますが、何が駄目なんでしょうか?

よろしくお願いします
0795デフォルトの名無しさん
垢版 |
2017/10/06(金) 11:38:08.44ID:Pjx+vQ2Q
>>791
?.演算子を使いたいから
デリゲートを呼ぶときは普通はInvokeは省略してaction()のように書くけど、
nullのとき何もしたくない場合にClick?.()みたいな書き方はできないから、仕方なくInvokeを明示的に書いてる
0796デフォルトの名無しさん
垢版 |
2017/10/06(金) 11:46:30.70ID:kruj0zmW
windows form 上にIPカメラ(AXIS製)の動画を表示したいです。
どうすればよいでしょうか?

OpenCVとか使うのが一般的なのでしょうか?
環境的に、社外ソフトをインストールし辛いので、確証を得てから試したいと思っています。

dllを配置するだけのmjpegprocessorとかは違うのかな?

調べる手がかりでも教えてもらえればありがたいです。
0798デフォルトの名無しさん
垢版 |
2017/10/06(金) 12:22:26.38ID:/+rBbbka
単純なテストで使い方を学ぶ段階なので、FlowrayoutpanelをForm_Load()の中で作るのが自然だと思ったからですが…なにか変ですか?
Form1にあるFlowrayoutpanelに外部クラスからボタン設置する方法を色々試してるので…
Flpset呼ばないとパネル無い状態ですし…
Flowrayoutpanelに外部クラス(ButtonRayout)から使うためにFlpsetを作った感じです(色々的外れかもしれませんが)
まだ色々よく分かっていないので、頓珍漢なことになってるとは思いますがすみません
0802デフォルトの名無しさん
垢版 |
2017/10/06(金) 13:22:30.01ID:/+rBbbka
>>801
ありがとうございます
Form1_Lordがタダのイベント(メソッド)だったというの、頭からすっかり飛んでました
今は時間無いので別クラスからControl配置は試せませんが、あとで色々やってみます
とりあえず、外に持ち出してpublicは適応できて、前と変わらぬ作動は出来ました
0804デフォルトの名無しさん
垢版 |
2017/10/06(金) 14:28:37.52ID:UQfFYJO/
ロケールが日本語環境のところで
指定された国コード(ISO)を指定された言語で表示させるには
どうしたらいいでしょうか。

string CountryName = GetCountryName("CN", "ko-kr");

という風に呼んだとき、中国という文字を韓国語で得たいのです。

public string GetCountryName(string CountryCode, string language)
{
  // この中
}

CNのRegionInfoを取得するところまでは出来たんですが、
DisplayName だと日本語で、NativeName だと中国語で、それぞれ取れるのですが
韓国語に変換させたいのです。

Windowsのロケール自体を韓国に変更すれば、DisplayNameで韓国語が取れましたが
それはやりたくないです。
0805デフォルトの名無しさん
垢版 |
2017/10/06(金) 14:57:21.64ID:BnWE0qO1
やったことないけど
Application.CurrentCultureか
Thread.CurrentThread.CurrentCultureを変えるのは?
0806デフォルトの名無しさん
垢版 |
2017/10/06(金) 15:35:24.88ID:vlZuL3bi
MSDNにはCurrentUICultureの方だって書いてあるね。
システムが持ってるリソースから拾ってくるんだろうからまあそうでしょう
0808デフォルトの名無しさん
垢版 |
2017/10/06(金) 16:12:02.05ID:+xC3oUH1
当たり前だけど韓国語とかの表示させる言語の言語パック入ってなかったらどうにもならない
0809デフォルトの名無しさん
垢版 |
2017/10/06(金) 17:25:14.70ID:UQfFYJO/
> CNのRegionInfoを取得するところまでは出来たんですが、
のところを補足します。

var CountryCode = "CN";
var CountryName = System.Globalization.CultureInfo.GetCultures(System.Globalization.CultureTypes.SpecificCultures)
  .Where(a => a.TwoLetterISOLanguageName.Equals(CountryCode, StringComparison.CurrentCultureIgnoreCase))
  .First().DisplayName;
return CountryName;

で、実行ロケールでの(日本語での)「中国」は取れました。
んで、どこへ "ko-kr" を挟み込めば良いのかが分かりません。

> Application.CurrentCultureか
> Thread.CurrentThread.CurrentCultureを変えるのは?

そーいう力技しかないのかなぁ・・・
0811デフォルトの名無しさん
垢版 |
2017/10/06(金) 17:44:13.26ID:vlZuL3bi
>>809
その「力技」もやってみたけど確かに出来ないね
普通に自分でテーブル用意した方が早い気がする
0813デフォルトの名無しさん
垢版 |
2017/10/06(金) 18:51:07.05ID:uoobo3tb
仕様がない
0814デフォルトの名無しさん
垢版 |
2017/10/06(金) 19:21:44.67ID:0wz1FkX0
>>794
入れ子にしたメソッドがエラーにならないのを初めて知ったw
使い道が思いつかないけどw
0815デフォルトの名無しさん
垢版 |
2017/10/06(金) 19:45:45.19ID:UQfFYJO/
>>810-811
元号もそうだけど、この手のはなるべくFrameworkに任せてしまいたいのです。
国が増えるたびにメンテなんてやりたくない・・・
(Frameworkが更新されるはずだから、それに依存したい)
0819デフォルトの名無しさん
垢版 |
2017/10/06(金) 19:59:49.34ID:vlZuL3bi
>>815
ない袖は振れないし仕方ないかと。
まあ普通に考えて想定された使い方と違うんだろうね

日付や数値のフォーマットはデフォでいろんな地域のが入ってるみたいだから
ついでに国名ぐらいサービスしてくれてもいいような気がしないでもないけど
0821デフォルトの名無しさん
垢版 |
2017/10/06(金) 20:06:57.34ID:XI0GFWBX
>>818
ごめん、知らんわ。
いつの間にpascal見たいな事ができる様に成ったんだ。
勉強不足でスマヌ。
Func、Actionで間に合ってた。死んでお詫びします。
0823デフォルトの名無しさん
垢版 |
2017/10/06(金) 23:08:48.64ID:386xmGqT
>>750
すいません、考えたのですが設計できません
データを管理するクラスを作り、UIが持っているUrlプロパティをFormが同期させるのはわかっていますが、タブの並び替えを実装しているので頭が混乱してしまいます
トップダウン設計で今までTabControl以下で持っていたTabPage変数と、TabPage以下で持っていたWebBrowser変数をFormに持ってきたのですがわけがわからなくなってしまいました
何をどこで持つべきなのかわからなくなってしまいパニックな状況です、設計ってかなり難しく感じています
0827デフォルトの名無しさん
垢版 |
2017/10/07(土) 10:24:35.11ID:34mGSqzO
C#はレガシーになりつつあるけど
拡張してなんとなく新しく見せてる

ここから新しく見せるのは無理かな
0828デフォルトの名無しさん
垢版 |
2017/10/07(土) 10:42:43.38ID:b4KK/o19
JavaとKotlinの関係のように新しい言語に乗り換えるべきだろうね
最近の歪な言語仕様拡張には辟易するよ
0832デフォルトの名無しさん
垢版 |
2017/10/07(土) 12:06:27.83ID:ky0kCJyY
>>831
EntityFrameworkとLINQ to Entitiesでググってこい
LINQは単に、いろんなデータソース(DB、配列、リスト、xml)に対する処理を同じようにかける枠組み
0839デフォルトの名無しさん
垢版 |
2017/10/08(日) 19:11:25.29ID:fHcFBAaS
今現在使っているタブ型WebBrowserでTreeView使ってJaneみたいなブックマーク機能を取り入れたいんですが、
フォルダとファイルのツリー構造を実現するクラスが思い浮かびません、どのようなクラスを作ればよいでしょうか?
0844デフォルトの名無しさん
垢版 |
2017/10/08(日) 22:34:55.91ID:jXMyRhU9
c#erの皆さんがこれだけは覚えていて損はないって言語なんですか?CとC++以外で
0846デフォルトの名無しさん
垢版 |
2017/10/08(日) 22:48:37.70ID:D0Vtmcpk
>>844
javascriptはクソだけど使う機会が多いので覚えたほうがいいと思う
しかも文法じゃなくてどういう風に使ってるかも含めて覚えたい

あとはpython
文字列など扱うとき便利
0850デフォルトの名無しさん
垢版 |
2017/10/08(日) 22:56:59.48ID:FNqA9s92
つphp

掲示板ってどうやって作るんですかぁ?
って聞いてくる可愛い女の子に教えられる
0851デフォルトの名無しさん
垢版 |
2017/10/08(日) 23:00:57.61ID:jXMyRhU9
皆さんありがとうございます
やっぱりweb系は覚えておいて損はないんですね
javascriptやphpはどうにも好きになれないんですが頑張ってみようかな。。
0853839
垢版 |
2017/10/08(日) 23:38:20.96ID:fHcFBAaS
TreeNodeで階層は分けれたのですがフォルダとURLの区別が付きません
お気に入りでURLとフォルダの区別をつけるようにするにはどうすればいいでしょうか?
0855デフォルトの名無しさん
垢版 |
2017/10/09(月) 07:40:56.77ID:Zzx1e3hO
>>845
おれもLisp/JavaScriptに同意
JavaScript名前が某クソ言語に似ているが面白い言語だと思う。
海外のGeekたちがその毒気に当たって色々なライブラリーが開発されて今に至る。
0856デフォルトの名無しさん
垢版 |
2017/10/09(月) 07:54:19.25ID:tvCeOLo3
需要は多いのにモジュールもろくに整備されないって変な言語だよな
Web系連中のいい加減さが現れた言語だ
0857デフォルトの名無しさん
垢版 |
2017/10/09(月) 08:01:34.71ID:pi4w3jwR
最近は状況が変わって来てるよ
とにかく古い環境で古い知識を勉強するとロクなことにならん
0860デフォルトの名無しさん
垢版 |
2017/10/09(月) 08:59:21.14ID:UEIAYP2F
>>859
cgiレベルならCでもperlでもたいして違わない気がする
文字列操作が多い分Cでやってたら本質的でないところで面倒なだけだし
0861デフォルトの名無しさん
垢版 |
2017/10/09(月) 09:04:59.65ID:Zzx1e3hO
>>860
c言語だとWebライブラリもないし全て自前で勉強にはなるだろ。
c言語でWebアプリなんか作っても難行苦行でしかないから作らんけどね。
サイボウズはc言語で作られてるらしいね。
0862デフォルトの名無しさん
垢版 |
2017/10/09(月) 09:11:47.98ID:CsWYGxTc
べつに、perlでやってもライブラリ使わなきゃWebの勉強としては変わらんだろ。
0863デフォルトの名無しさん
垢版 |
2017/10/09(月) 10:13:02.85ID:Y2JfmrWo
C言語でやるメリットってあるのかな
サイボウズってそんなにCPU使うようなサービスだっけ
0864デフォルトの名無しさん
垢版 |
2017/10/09(月) 10:31:59.67ID:Zzx1e3hO
>>863
サイボウズは20年も前に開発されたものだからな。
当時はc言語のcgiなんて普通にあった。2chもそうだったし。
0865デフォルトの名無しさん
垢版 |
2017/10/09(月) 10:34:00.35ID:VHpEwq8w
「初心者の質問スレ」で「C#に関係ない話題はやめてください」
>>844みたいなのはマ板でやれよ。板の意図とも違う
0866デフォルトの名無しさん
垢版 |
2017/10/09(月) 10:43:38.01ID:t8KOjWoA
>>861
なんでいきなりWebライブラリの話が出てくるんだよ w
cgi って言ってるんだからhttpヘッダー+生のhtmlでやるって話だろ
0868デフォルトの名無しさん
垢版 |
2017/10/09(月) 11:10:56.57ID:9hl0U6ca
プログラムの勉強にC#で簡単なアプリ作ってみたのだけど、配布する前に難読化した方がよいと聞いてConfuseEx試してみたらマルウェア判定されて即消されちゃうのだけど、どうしたら難読化したアプリを配布出来るのか教えて下さい
もしかして難読化する方が少数派なのでしょうか?
0869デフォルトの名無しさん
垢版 |
2017/10/09(月) 11:15:39.19ID:Vj0lVF94
>>868
難読化はITリテラシーの低い経営者を狙った詐欺
C#じゃ難読化しても技術保護にはならないし
そもそもリバースエンジニアリングされるほど高尚な物じゃないだろう?
本当に保護したい技術はサービスとして提供して物は一切公開しない
0870デフォルトの名無しさん
垢版 |
2017/10/09(月) 11:16:09.72ID:VHpEwq8w
>>868
何故難読化するのか理由がちゃんとあるのか?
隠さなければならないコードがない限り普通は難読化しない
0871デフォルトの名無しさん
垢版 |
2017/10/09(月) 11:24:51.27ID:EXlp17KP
難読化ってリフレクションには影響無いのか?
例外のスタックトレースまで難読化されるんだろ。
0872デフォルトの名無しさん
垢版 |
2017/10/09(月) 11:29:25.08ID:6DW9ok56
C#で難読化とか吹き込んだ奴に聞けよ
まともなコンサルなら耐タンパー性が必要ならまずC/C++で開発しろと言う
0875デフォルトの名無しさん
垢版 |
2017/10/09(月) 11:48:44.68ID:T0povuKJ
難読化って言葉通り読み辛くしてるだけだからな
初心者じゃなければ解析できるんだからあまり意味がない
0877デフォルトの名無しさん
垢版 |
2017/10/09(月) 11:52:12.53ID:A2XN0/QV
フロー難読化もあるから初級者上級者関係ない
解析は根気があるかどうかが問題だよ
0879デフォルトの名無しさん
垢版 |
2017/10/09(月) 12:00:45.54ID:9hl0U6ca
やはり普通やらないような事なのですね
なんとなくですが理解しました!
アプリ内に書いてある文字列で別のアプリで暗号化したものを復号化してみるアプリだったのですが、文字列が丸見えらしく知り合いに聞いてみたら難読化してみたら?との事でした
要は文字列だけ隠したいのですが何かしら方法はあるものなのでしょうか?
0881デフォルトの名無しさん
垢版 |
2017/10/09(月) 12:04:20.36ID:VHpEwq8w
>>879
本来の意図が分からないが元のアプリ内の文字列を最初から暗号化したら済む
解析もできないようにしたいのだったら難読化だろうが何だろうが無理
手間がどれだけかかるかだけの違いしかない
0882デフォルトの名無しさん
垢版 |
2017/10/09(月) 12:08:39.18ID:3IBabimx
パスワード c# プログラム内
でググったら
ハッシュがどうのこうのってのは出てきた
使えるかな?
0885デフォルトの名無しさん
垢版 |
2017/10/09(月) 12:45:14.62ID:c41RoAYB
ツールを使ってjsのコードを難読化し、ユーザーはツールを使ってそれを可読化する
人間って面白いね
0887デフォルトの名無しさん
垢版 |
2017/10/09(月) 12:51:39.85ID:Zzx1e3hO
>>879
そもそも、復号キーをコードの中に埋め込んでいるのが間違いだろうけどね。
復号キーを暗号化しても復号アルゴリズムがコードの中にあったら無意味だよ。
0888デフォルトの名無しさん
垢版 |
2017/10/09(月) 12:54:13.72ID:T0povuKJ
>>887
そういう場合は秘密鍵をサーバーに、プログラムには公開鍵だけを持たせるやり方が簡単
ネットを介さない環境で使用するアプリとかなら仕様がわからんんがキーコンテナを使え
0890デフォルトの名無しさん
垢版 |
2017/10/09(月) 13:21:52.47ID:9hl0U6ca
みなさまありがとう
アプリAで暗号化、アプリBで復号化、他者はBしか持っていないという状況を想定して、アプリB内の復号化に使う文字列をなるべく隠したくて質問させて頂きましたが難しそうですね

いろいろ素人なりに調べてみたけれどやはり秘密鍵をどうにかサーバーに置いておくのが良さそうに感じました
ただ適当なサーバーに適当に秘密鍵をアップしてもあまり意味なさそうなのでその辺りもよく考えないとダメそうですね…

ゆくゆく作りたいアプリのために始めてみましたが、ある程度解析しづらいらしいC++などで最初から考え直しても良いのかもしれません
アドバイスありがとうございました
0891デフォルトの名無しさん
垢版 |
2017/10/09(月) 13:49:55.29ID:KtpP5XlM
>>890
鍵を外部ファイルにすればいいだけだろ
なんでcでやるとかサーバー使うみたいなトンチンカンな方向に行ってしまうんだ
0892デフォルトの名無しさん
垢版 |
2017/10/09(月) 14:00:57.24ID:qEhozSMZ
>>891
外部ファイルだと中身見れるから意味ないだろバカか
0894デフォルトの名無しさん
垢版 |
2017/10/09(月) 14:13:38.87ID:T0povuKJ
外部ファイルが許されるのは入力パスワードに対してのハッシュくらいだろ
879の案件には合わない
0897デフォルトの名無しさん
垢版 |
2017/10/09(月) 14:22:02.94ID:6DW9ok56
Bで作った公開鍵をAに渡して暗号化させればいいだけの話でないのん
秘密鍵だけで無理にやろうとするから当たり前のように無理が出るのでは
0899デフォルトの名無しさん
垢版 |
2017/10/09(月) 14:40:20.42ID:qEhozSMZ
>>896
トンチンカンなバカレスするお前は初心者以下
0902デフォルトの名無しさん
垢版 |
2017/10/09(月) 15:01:38.21ID:qEhozSMZ
>>900
じゃあ早く俺のレスに答えて
0904デフォルトの名無しさん
垢版 |
2017/10/09(月) 15:02:45.85ID:M//uOX8+
>>887
無意味ではないよ
文字列抜き出すのとアルゴリズムの解析とでは
必要な時間が全く違うからね
それこそ難読化の出番
0906デフォルトの名無しさん
垢版 |
2017/10/09(月) 15:06:38.70ID:LtbrVXIC
埋め込みでリソース持つのと、外部ファイルで持つのってセキュリティそんなに変わらんでしょ?
0907デフォルトの名無しさん
垢版 |
2017/10/09(月) 15:07:25.29ID:ZyuEIFSh
そもそも暗号化手順+暗号キーを知られたくないならまだしも暗号キーをとにかく知られたくないというのが分からない
元の質問者は終了宣言しているし外野が条件変えながら議論しても無意味
0909デフォルトの名無しさん
垢版 |
2017/10/09(月) 15:10:52.65ID:qEhozSMZ
>>908
逃げんな
早く答えろ
0911デフォルトの名無しさん
垢版 |
2017/10/09(月) 15:18:53.37ID:KtpP5XlM
公開鍵で暗号化プログラムA
秘密鍵で復号プログラムB
Bの利用者は鍵ペアを生成
外部ファイルとして秘密鍵をプログラムに渡す
公開鍵を通信相手に渡す
終わり
0912デフォルトの名無しさん
垢版 |
2017/10/09(月) 15:22:46.29ID:KtpP5XlM
コード書けりゃプログラマじゃないぞ
お前らはC#なんてやっとらんでITパスか基本情報でも取ってこい
0916デフォルトの名無しさん
垢版 |
2017/10/09(月) 15:54:47.16ID:F9+aoLk/
if(HashPasswordForStoringInConfigFile(パスワード, "sha1").ToLower() == ハッシュ文字列)
{/*編集可能処理*/}

って書いてあった
0917デフォルトの名無しさん
垢版 |
2017/10/09(月) 15:57:26.54ID:ZyuEIFSh
>>916
>>879のデータの暗号化とパスワードの認証は別の話
ハッシュで認証するから元のパスワード持っていなくていいよ、てのはわかるが
0918デフォルトの名無しさん
垢版 |
2017/10/09(月) 16:04:00.40ID:LtbrVXIC
認証したいなら個別に別ルートでパスワード発行

ユーザー全員に共通パスワード持たせたいならセキュリティ諦めてリソース持つぐらいで十分
できれば中間にAPI噛ませて何かあった時の被害をコントロールできるようにしておいたほうがいい
0920デフォルトの名無しさん
垢版 |
2017/10/09(月) 16:39:54.37ID:Uib+y8KD
以前List<T>オブジェクトをXmlシリアライズ・デシリアライズする拡張メソッドを作ったのですがユーザー定義クラスのときだけ動きません
public static void SaveXml<T>(this List<T> list, string path)
{
T[] xmldata = list.ToArray();

using (FileStream fs = new FileStream(path, FileMode.Create))
{
XmlSerializer xml = new XmlSerializer(typeof(T[]));

xml.Serialize(fs, xmldata);
}
}

こういった感じでList<MyData>型の変数myDataList.SaveXml("D:\hogehoge.xml")と呼ぶとxml.Serialize(fs, xmldata)のところで
System.InvalidOperationExceptionが投げられます。ただのList<string>型の場合投げられません。
どこがまちがっているでしょうか?
0922デフォルトの名無しさん
垢版 |
2017/10/09(月) 17:14:46.63ID:qEhozSMZ
>>911
はあ?
秘密鍵丸見えじゃ無意味って理解出来ないの?
0925デフォルトの名無しさん
垢版 |
2017/10/09(月) 17:23:16.60ID:qEhozSMZ
>>923
違う用途ならともかくこの件においては
データ改変できて無意味
0927デフォルトの名無しさん
垢版 |
2017/10/09(月) 17:28:38.64ID:r14Jr9yH
>>920
型以外の条件を一切変更していないのに(ダメな人は他の条件も変えてたりするから困るw)
TがMyDataの場合だけ例外は発生するのであれば、
普通に考えてMyDataがXMLシリアル化可能な条件を満たしてないんでしょう。

例えばデフォルトコンストラクタがないとかそもそもpublicなクラスじゃないとか。
0928デフォルトの名無しさん
垢版 |
2017/10/09(月) 17:28:45.97ID:qEhozSMZ
>>926
は?
間違ったやり方をやるわけないだろバカ
0931デフォルトの名無しさん
垢版 |
2017/10/09(月) 17:42:16.72ID:CACjh+QN
馬鹿の壁みたいだ

初心者のためにかくと
公開鍵は暗号化する鍵で誰にみせてもいい
秘密鍵は暗号を解く鍵でみせてはいけない

B利用者は自分のための公開鍵と秘密鍵を作る
作った秘密鍵をプログラムBに渡す

公開鍵は誰にでも渡してプログラムAで鍵をかけてもらったものを送ってもらう

B利用者は送られたものをプログラムBで鍵を解く

送った内容は秘密鍵を持ってないと中身がみえないので安全
0933デフォルトの名無しさん
垢版 |
2017/10/09(月) 17:48:41.75ID:CACjh+QN
秘密鍵を相手に渡すのは馬鹿の極み
公開鍵は誰に見られてもいいので
難読化とかそういう以前の問題

セキュリティがどうこう言う前に勉強すべき

プログラムBが公開鍵持ってても何の問題ない
0935デフォルトの名無しさん
垢版 |
2017/10/09(月) 17:50:42.44ID:qEhozSMZ
>>929
アスペか?日本語すら出来ないバカは死んでろ
生きてる価値も意味も皆無だから
0936デフォルトの名無しさん
垢版 |
2017/10/09(月) 17:51:09.22ID:CACjh+QN
馬鹿は馬鹿同士でお互いにバカにしあっていればいい
俺は横から初心者のために解説してるだけ
0938デフォルトの名無しさん
垢版 |
2017/10/09(月) 17:51:44.57ID:r14Jr9yH
実にどうでもいい話だけど、元の質問者のケースは別人の間の通信ではないので、
公開非公開の区別の意味はないね。

この分野全然知らんけど、サーバーに復号化のための情報を置いたら安全って発想は
ちょっと理解できんなあ。

それってハッキングする側から見たら、単にサーバーの認証を突破するひと手間が
増えただけの話じゃないの?
0941デフォルトの名無しさん
垢版 |
2017/10/09(月) 17:55:23.10ID:qEhozSMZ
>>933
ユーザーに改変されたくないデータをやり取りする場合そのやり方だと無意味
0942デフォルトの名無しさん
垢版 |
2017/10/09(月) 17:56:26.56ID:CACjh+QN
うっわ無知な馬鹿に絡まれた
最悪・・・

無知でも考えれば何とか答えが出るのに…
0943デフォルトの名無しさん
垢版 |
2017/10/09(月) 17:56:55.32ID:qEhozSMZ
>>937
バカはセキュリティ意識がないんだな
0944デフォルトの名無しさん
垢版 |
2017/10/09(月) 17:58:13.55ID:qEhozSMZ
>>942
答えられないの?
0945デフォルトの名無しさん
垢版 |
2017/10/09(月) 17:58:55.36ID:S4nF/O79
>>938
最初から読めばファイル配布の稚拙なシステム作ろうとして注意されたのが分かる
多分本人は問題の本質に気付いていない
そしてこの問題はC#以前の話
0946デフォルトの名無しさん
垢版 |
2017/10/09(月) 17:59:02.92ID:c41RoAYB
人間の基本行動原理

自分だけはバカじゃないという前提
自分だけは誰よりも常に正しいという前提
0947デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:04:39.80ID:LtbrVXIC
パブリックキーで暗号&復号化するのはパケットの話
サーバに収めるデータやDBは別
0948デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:08:41.86ID:T0povuKJ
>>938
そうじゃなくてサーバーに復号化の情報を置くのではなくサーバーで復号化させるってこと
A-B間で直接やり取りできるなら別にサーバーじゃなくてもいい

どうでもいいけど質問者の案件の詳細がわからない限りこれ以上の言い争いは不毛だぞ
0949デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:11:27.11ID:CsWYGxTc
サーバーで復号したものを安全にBに持ってくるにはまた暗号化が必要なんでは?
0950デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:12:13.10ID:CACjh+QN
ようやく自分の誤りに気づき終息させようとするの術

その前に嵐扱いした人に謝ったほうがいいんじゃないかなw
0954デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:19:37.05ID:zWF+LHai
情報小出しにして質問する→勝手な憶測で返す→条件無視の議論に発展
このコンボやめてくれ
0956デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:20:54.51ID:qEhozSMZ
>>953
ユーザーが改変できるってさっきから指摘してるんたが?
逃げずにはやく答えてみろよ?
0958デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:24:21.88ID:r14Jr9yH
>>948
要するに、「デコーダー」側がハッカーと正規ユーザーを区別できなきゃ安全でも何でもないよね
0959デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:24:23.29ID:CACjh+QN
>>956
まだ気づいてないのか?

よーく考えてみたら?
条件というか設定が間違ってる

それはBからAに送信するときの暗号化の話だから問題が逆
それにユーザーがコード改変して暗号化前に情報変えるのは無関係だろ
0961デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:32:17.71ID:qEhozSMZ
>>959
気付いてないのはお前の方だろバカ
ユーザーの元に秘密鍵があれば改変したデータを作って利用できるだろ
0963デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:34:41.77ID:CsWYGxTc
>>951
今度はその一時的な鍵をサーバーとBの間でどうやって安全に交換するかって問題に帰着すると思うが。
0966デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:37:45.93ID:UEIAYP2F
>>961
> 気付いてないのはお前の方だろバカ
お前だよ w

> ユーザーの元に秘密鍵があれば改変したデータを作って利用できるだろ
ちゃんと質問者のレス読めよ
>>890
> アプリAで暗号化、アプリBで復号化、他者はBしか持っていないという状況
0970デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:40:11.30ID:CACjh+QN
公開鍵と秘密鍵についてよくわかってないのが多いな

httpsじゃダメだって言うんだろうな
怖い怖い
0971デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:41:35.96ID:oNj7uBjL
>>938
同じ鍵で解読できる暗号が2種類あった場合、利用者に複合鍵を渡すと両方解読されてしまう
サーバーで複合すればユーザー情報に基づいてひとつだけ解読可能みたいなこともできる

あと、ローカルでの解読と違ってサーバーに不正アクセスするのは犯罪になるという障壁もある
0972デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:42:38.62ID:qEhozSMZ
>>966
はあ?
他者がBを持ってそのBに秘密鍵を置くなんてもってのほかだぞ?お前もバカか
0976デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:44:41.48ID:qEhozSMZ
>>970
お前のようなバカはブラウザに秘密鍵があるんだな
怖すぎ
0983デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:51:07.76ID:CACjh+QN
仕組み

サーバとクライアントで別々の鍵ペア(秘密鍵、公開鍵)を作ってお互いに
公開鍵を渡す
ネットを通すときは相手からもらった公開鍵で暗号化
受け取った側は自分の秘密鍵で解読

秘密鍵はネットを通らないので間で傍受されても普通は暗号解読不能
0984デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:51:39.28ID:T0povuKJ
>>982
Aと他者が使うBが常時やり取りできるならサーバーである必要もないとは言ってるし
そもそも安全な暗号化する鍵の保存についての答えだが
0985デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:53:53.42ID:qEhozSMZ
>>975
だから利用者側に秘密鍵があれば利用者が改変したデータを作れてしまうだろ
まだ理解出来ないの??
0987デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:55:41.00ID:CACjh+QN
>>985
秘密鍵関係なく暗号化前のデータを変えれば意味ないでしょって言ってるんだけど

暗号化したらユーザーがデータを変えられないと思ってるなら間違い
0988デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:58:23.22ID:CACjh+QN
つかれた
秘密鍵は何度も言ってるけど暗号解除のための鍵

プログラムBが秘密カギを持ってるとするとプログラムAからのデータを受け取るときの
暗号解除のため
だからユーザーがデータを書き換えるとかそういうのは違う
0989デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:58:38.89ID:r14Jr9yH
うーん、繰り返しになるけど、質問者のケースは別人の間の通信じゃないので鍵をペアにする意味なんかないですよw

問題はどうやったら正規ユーザーだけが利用できる「復号化装置」を確保きるかって話。

「復号化装置」を外だししたら安全だって話は普通に正しくないでしょう。
そんなのハッキングする側から見たら「ほんのひと手間」増えるだけ。
0991デフォルトの名無しさん
垢版 |
2017/10/09(月) 18:59:20.58ID:qEhozSMZ
>>987
秘密鍵が手元にあれば改変した偽のデータを作ってそれをアプリで使えてしまうだろ
まだわからないの?
0998デフォルトの名無しさん
垢版 |
2017/10/09(月) 19:02:26.16ID:qEhozSMZ
>>995
だからそれは間違ってるって言ってらだろバカ
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 31日 0時間 50分 43秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。