ふらっとC#,C♯,C#(初心者用) Part83

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。立てる前に埋めんなよチンパンども。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。

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

■前スレ
ふらっとC#,C♯,C#(初心者用) Part82
http://toro.2ch.net/test/read.cgi/tech/1323859443/

■関連スレ
C#, C♯, C#相談室 Part69
http://toro.2ch.net/test/read.cgi/tech/1323354868/
ミスターサタンのC#相談室 
http://hibari.2ch.net/test/read.cgi/tech/1092656075/
VB.NET質問スレ(Part38)
http://toro.2ch.net/test/read.cgi/tech/1325083428/
くだすれC++/CLI(初心者用)part2
http://hibari.2ch.net/test/read.cgi/tech/1268613679/
2デフォルトの名無しさん:2012/01/02(月) 22:43:07.31
■備考
コードの量が多い場合は下記サイトを使うなどしたほうがいいかも
http://ideone.com/
http://pastebin.com/
コードを貼り付けてrun codeのチェックをはずしてsubmitボタンを押すと
コードを鯖側にアップして専用のアドレスが発行されます
3デフォルトの名無しさん:2012/01/02(月) 22:52:24.05
乙だがそろそろチンパン消せよw
4デフォルトの名無しさん:2012/01/02(月) 23:23:47.36
なおそうかなとも思ったんだけど、そう言う伝統なのかと思ってさ。w
5全スレ975:2012/01/02(月) 23:58:55.08
全スレ981さんへ

ご助言ありがとうございます。
どの道1/3,4は1日中勉強する予定でしたので誰からもチャットが来なければ頂いたサイトを参考に勉強したいと思います^^
1/4ですが、出来れば講師を受けたいと思います。
これ以上はスレ違いと反感をかいかねないため、どうぞSkypeまたはLiveMessengerへ連絡頂ければ幸いです。
他の方も講師をしていただける方がいらっしゃいましたら下記まで連絡をお願いいたしますm(_ _)m

自分のレベル:
HTMLは実務経験あり。
プログラム歴1年くらい。
変数やクラス等の概念は問題ないと思います。
C#は10日程度です。

Skypeアカウント:aspcsharp
LiveMessengerアカウント:[email protected]
6デフォルトの名無しさん:2012/01/03(火) 00:12:42.06
ネカフェでC#開発とかってできるかなぁ
7デフォルトの名無しさん:2012/01/03(火) 00:16:22.42
利用するたびVisualStudioインスコすんの?
8デフォルトの名無しさん:2012/01/03(火) 00:19:24.38
PC買った方が安くすむだろw
こないだ展示用PCが1万くらいで売ってただろwプログラムできないけどw
9デフォルトの名無しさん:2012/01/03(火) 00:21:26.50
あんまり非力なPCだとVS2010は重くて使い物にならないぞ
10デフォルトの名無しさん:2012/01/03(火) 00:30:20.22
VS2005持っているなら、中古ノート1万以下のP4 メモリ512 辺りで開発できそうだな
11デフォルトの名無しさん:2012/01/03(火) 00:40:38.46
xp sp3入れたら開発はきついな
12デフォルトの名無しさん:2012/01/03(火) 00:43:06.46
ヨドバシの福袋ノートなら1万くらいで開発専用なら悪くなさそうだったな
普通にノート買うつもりで浮いた予算でSSDに変えれば開発ではこまらん
13デフォルトの名無しさん:2012/01/03(火) 01:06:48.10
構造体の要素に配列は入れられますか?
14デフォルトの名無しさん:2012/01/03(火) 01:36:20.71
通常の配列なら普通に何の問題もなく入れられる
C言語なんかでイメージするような固定長バッファをイメージしてるなら、unsafe付けてfixed
15デフォルトの名無しさん:2012/01/03(火) 01:51:54.69
FrameWork1.1が不評すぎてSP3と2010入れてみたけどこれいいね
小文字大文字関係ないのが特に(・∀・)イイ!!
16デフォルトの名無しさん:2012/01/03(火) 02:57:06.11
構造体への参照を返すメソッドって作れますか?
17デフォルトの名無しさん:2012/01/03(火) 05:25:07.39
>>10
画面がないコマンドみたいなツールならGeodeの512Mで余裕
そのかわりエディターは秀丸
18デフォルトの名無しさん:2012/01/03(火) 06:03:19.55
>>16
void SansyouWoKaesuMesoddo( out HageStruct hs )
{
...
}
19デフォルトの名無しさん:2012/01/03(火) 06:15:59.86
HageStruct[] SansyouWoKaesuMesoddo()
{
...
}

20デフォルトの名無しさん:2012/01/03(火) 06:42:53.84
配列にしちゃうのはP/Invokeでポインタ渡したいときにMSも使ってる手だぬ
21デフォルトの名無しさん:2012/01/03(火) 12:54:07.40
構造体内のデータをソース内でセットするんじゃなくて
iniファイルとかからまとめて取り込むのはどうするの?

どのテキストもみんなソースに羅列書きで
それ真似したくない
22デフォルトの名無しさん:2012/01/03(火) 12:56:53.61
>>21
構文解析だからなあ・・・
23デフォルトの名無しさん:2012/01/03(火) 13:15:25.70
iniじゃなくてxml使うようになったから、あなたの希望は永久に実現されない
24デフォルトの名無しさん:2012/01/03(火) 13:42:13.07
WindowsFormのTreeViewで、フルパスの文字列からそのTreeNodeを得る
良い方法があったら教えてください。
25デフォルトの名無しさん:2012/01/03(火) 13:57:30.77
フルパスを分解して一番上から辿って行くという素直な方法しかない
26デフォルトの名無しさん:2012/01/03(火) 13:59:25.65
そんな馬鹿な
TreeView.NodesからTreeNode.FullPathを探せばいいだろ
27デフォルトの名無しさん:2012/01/03(火) 14:01:49.78
>>24
Dictionay<string,TreeNode> で検索用辞書を用意して、TreeView作成時に全部登録しておく
普通は再帰使って地道に検索するけどね
28デフォルトの名無しさん:2012/01/03(火) 14:08:11.56
地道というほど長い道のりでもない
http://ideone.com/MW0NK
29デフォルトの名無しさん:2012/01/03(火) 14:29:51.88
>>28
俺ならこう書くよ
http://ideone.com/MXc76
30デフォルトの名無しさん:2012/01/03(火) 14:57:24.75
>>21-23
> iniファイルとか
「とか」なんだから、今時はxmlで保存してDataContructとか使うと答えておけば良い
31デフォルトの名無しさん:2012/01/03(火) 16:02:06.96
iniならまだしもxmlなんてユーザーの触れる代物じゃ無いんだがね。
設定ツール用意する?
そうするとツールの使い方聞かれて面倒。
となると結局iniなんだよな〜
XPも無くなるし今後は保存場所も問題だよね〜
32デフォルトの名無しさん:2012/01/03(火) 16:04:01.55
設定ファイル触らせる方が間違ってる
33デフォルトの名無しさん:2012/01/03(火) 16:15:51.63
iniなら大丈夫って感性もよく分からないけど
iniならなぜ大丈夫と言えるのだろう

少なくとも家の人間は俺以外誰も分からない
34デフォルトの名無しさん:2012/01/03(火) 16:17:07.04
触らせたり読ませたりしないんだったらバイナリファイルにシリアライズしろってことだろ
速度も速いし

iniやxmlは触って/触らせてなんぼだろ
35デフォルトの名無しさん:2012/01/03(火) 16:17:41.53
一口にユーザーと言ってもいろいろいるからね。
専業主婦とかではないだろw
36デフォルトの名無しさん:2012/01/03(火) 16:19:47.63
状況に依るだろ
滅多に変更しないものでもGUIを用意するの?
37デフォルトの名無しさん:2012/01/03(火) 16:20:22.26
使い方を聞かれないGUIを用意するのが一番なんだけど
面倒なんだよな

面倒だからユーザに苦労を転嫁してしまいたい
38デフォルトの名無しさん:2012/01/03(火) 16:25:18.96
>>21が言ってるのは構造体のデータを外に出したいってだけで
ユーザビリティがどうこうじゃねえ(=使うのは本人だけ)と思うけどな
脇道に逸れるのが得意だよな
39デフォルトの名無しさん:2012/01/03(火) 16:28:38.97
まあ、優位論は他でやるといいよ。
無いものは無いんだから。

それでもiniにしたけりゃP/InvokeでGetPrivateProfileStringでもなんでもどうぞ。
止めないから存分に茨を踏めばいい。
40デフォルトの名無しさん:2012/01/03(火) 16:37:17.57
xmlは差分が取れるからバージョン管理しやすい
41デフォルトの名無しさん:2012/01/03(火) 16:42:59.50
iniも差分とれるしバージョン管理しやすいけど、使いたくない
42デフォルトの名無しさん:2012/01/03(火) 17:01:10.12
要素数が可変だとiniは使わないほうがいい
4321:2012/01/03(火) 17:04:37.55
結局どうすれば・・・?
要は開発中に設定変えるたびにコンパイルしたくなくて
iniファイルだけ調整して試運転したいのが主
44デフォルトの名無しさん:2012/01/03(火) 17:08:22.29
構成ファイルで十分じゃね
45デフォルトの名無しさん:2012/01/03(火) 17:13:42.10
4621:2012/01/03(火) 17:16:11.63
それって構造体やオブジェクトのデータに使えるの?
47デフォルトの名無しさん:2012/01/03(火) 17:25:47.62
intは構造体だしStringは立派にクラスやで

汎用ならこんなんでも用意しとけばいいだろ
http://ideone.com/7T6I7
48デフォルトの名無しさん:2012/01/03(火) 17:47:09.06
Settingでいいだろ
49デフォルトの名無しさん:2012/01/03(火) 19:13:15.67
プログラマー…すごい奴らだ。
なんで安いんだろ?
50デフォルトの名無しさん:2012/01/03(火) 19:37:25.15
俺はこうかな
ttp://ideone.com/HBdru
51デフォルトの名無しさん:2012/01/03(火) 19:40:37.01

.NET Frameworkの既存のDeserializerの類が型引数を取らないのはなぜなんだぜ?
キャストが減って便利じゃね?
52デフォルトの名無しさん:2012/01/03(火) 19:41:34.24
型引数つける場所がへんだろ
53デフォルトの名無しさん:2012/01/03(火) 19:46:37.06
IsolatedStorageは弄らない事を建前にしてるからなんかなあ
54デフォルトの名無しさん:2012/01/03(火) 19:47:33.00
やってみりゃわかるけどリフレクションが絡むとジェネリックうざい
型が分散して扱いづらくなる
55デフォルトの名無しさん:2012/01/03(火) 19:52:15.17
分散はしないだろ。書き方が変なんじゃね
56デフォルトの名無しさん:2012/01/03(火) 20:04:54.82
たとえばXmlSerializer<T>にしたいって話だろ?
ジェネリックだとFromMappingsとかFromTypesとかできなくなるよ
共通の非ジェネリッククラスを継承するようにしてもいいが、
結局上に挙げたメソッド使うときには非ジェネリックになってしまうし
キャストを減らすためだけに無駄な継承階層増やすのもな
57デフォルトの名無しさん:2012/01/03(火) 20:25:09.63
>>28>>29
出来ました!どうもありがとう
入れ子にするとこんなコンパクトになるとは驚き
58デフォルトの名無しさん:2012/01/03(火) 20:26:21.54
そしてスタックが溢れるのか。胸熱
59デフォルトの名無しさん:2012/01/04(水) 00:51:19.33
>>57
>入れ子にすると

再帰じゃね?
60デフォルトの名無しさん:2012/01/04(水) 00:57:16.74
再帰ですな
61デフォルトの名無しさん:2012/01/04(水) 01:30:03.84
aspでSQLからDatasetに格納して表示まで成功しました。
そこから、リンクを貼って一覧画面から詳細画面に飛ぶにはどうすればいいですか?
62デフォルトの名無しさん:2012/01/04(水) 01:56:05.01
<A>タグでリンクかけばいいんじゃないの?
63デフォルトの名無しさん:2012/01/04(水) 02:09:43.58
どの行のリンクをクリックしたかで詳細画面の情報も変わってきます。
そのため、リンクにどのような情報を埋め込めば良いのかが分からないのです。

分からない事
・一覧画面のリンクに埋め込む情報はどんな情報か
・その情報を別画面へ持ち込む方法
・持ち込んだ情報をSQL Serverへ送って検索する方法
・検索結果をDataSetに格納する方法
64デフォルトの名無しさん:2012/01/04(水) 02:21:09.60
必要な情報を自分で選べばいいだけだろw
65デフォルトの名無しさん:2012/01/04(水) 02:32:17.48
URLに情報を埋め込んだとします。
例)~.aspx?number=xxx

この情報を(number)を
・SQL Serverへ送って検索する方法
・検索結果をDataSetに格納する方法

についてどのような方法メソッドやプロパティが使用できるのかご教授ください。
66デフォルトの名無しさん:2012/01/04(水) 02:33:01.75
使用できるのかと言うか、使用するべきかですね。
67デフォルトの名無しさん:2012/01/04(水) 02:39:20.17
ご教授を要求するとか偉そうだなあ
>>61が出来てるなら何も困るとこないだろ
どういう調査して何を試したか位かけ
68デフォルトの名無しさん:2012/01/04(水) 03:08:30.63
>>67
>>ご教授を要求するとか偉そうだなあ
間違った言葉だったのですね。常識知らずで申し訳ありません。
内容をもう少し整理してから書き込みます。
69デフォルトの名無しさん:2012/01/04(水) 07:40:21.98
・URL引数の取り出し方
PageのRequestプロパティのQueryStringから["number"]を持ってくる
http://msdn.microsoft.com/ja-jp/library/system.web.httprequest.querystring.aspx

・SQLの作成
SqlCommandのCommandTextとParametersに値を入れる
http://msdn.microsoft.com/ja-jp/library/system.data.sqlclient.sqlcommand.parameters.aspx

・検索結果をDataSetに格納
DataSetとSqlCommandを作成しておいて、SqlDataAdapterのSelectCommandを設定してFill
http://msdn.microsoft.com/ja-jp/library/system.data.sqlclient.sqldataadapter.aspx
70デフォルトの名無しさん:2012/01/04(水) 08:23:01.31
>>60
再帰って、脱するルーチンミスると無限ループしそうで怖くて
なかなか使う機会がが無い
71デフォルトの名無しさん:2012/01/04(水) 09:31:41.58
>>70
そんなの日常茶飯事。スタックオーバーフローが出るだけ。
数回修正すれば治るから大丈夫
再帰怖くない。
72デフォルトの名無しさん:2012/01/04(水) 10:48:17.67
便乗で教えて。デバッグ中とか、無限ループしちゃったら、どうやって止めるのが安全なの?
73デフォルトの名無しさん:2012/01/04(水) 10:56:47.14
「デバッグの停止」を実行すればいいじゃん
74デフォルトの名無しさん:2012/01/04(水) 11:00:57.13
一般論は無いが、中断して変数や実行場所を弄れば安全に脱出できる場合もあるからまずはそれで
コネクションとかロックとか放置できないものが無ければプロセス強制終了でもいいけど
75デフォルトの名無しさん:2012/01/04(水) 12:27:17.29
シフトF5なんて普通に指が動くなあ
76デフォルトの名無しさん:2012/01/04(水) 14:19:10.85
再帰はプログラミング初学生が言語に興味もつきっかけとかではアリだが
プロが業務コードとして残すようなものじゃない
77デフォルトの名無しさん:2012/01/04(水) 14:24:22.66
無限ループがありえるかありえないかってコードみたらすぐに分かりそうだけど
それでも躊躇するというのはコード以外の要因でバグになった場合を考えてるんですか・?
78デフォルトの名無しさん:2012/01/04(水) 14:37:09.00
無限ループでなくても処理によっては結構簡単にスタックオーバーフローするぞ
さすがにTreeNodeの例だったらそこまで深くなる前に他の問題で逝くだろうけど
79デフォルトの名無しさん:2012/01/04(水) 14:46:36.12
>>76
TreeNodeとかFileSystemなどは、再帰に向いた構造になっているだろ
それらを扱う時あえて再帰を避ける理由は特にないだろ

後はQSoetとBinaryTreeが再帰の定番かな?
80デフォルトの名無しさん:2012/01/04(水) 15:16:58.48
セオリーが常に正しいとは限らないと理解できるようになったら中級卒業だよ
81デフォルトの名無しさん:2012/01/04(水) 15:32:22.38
とにかく一般化して語りたがるお年頃
一般化すればえらいと思ってる
そんな人はおそらくレベル2です
http://www.geekpage.jp/blog/?id=2007/7/9
82デフォルトの名無しさん:2012/01/04(水) 15:38:09.04
非再帰に書き直して遅くなるコードがあったら書き直すのは適切かとか、
状況は色々あるのにプロだからの一言で片付ける奴はプロじゃねえよ
調子こくな
83デフォルトの名無しさん:2012/01/04(水) 15:40:12.83
レベル3かなあ。
プログラミングできると言い切れるほどの能力は無いというか、
どこまで行っても足を踏み入れたばっかりみたいな感覚。
言語だけ覚えてもアーキテクチャはまた別だからなあ。
84デフォルトの名無しさん:2012/01/04(水) 15:43:53.36
>レベル3
>様々な先輩プログラマとの交流を持つようになります。
ここで交流させてもらってるから俺ももうレベル3を自認していい?
85デフォルトの名無しさん:2012/01/04(水) 15:45:13.86
アルゴリズムの優位論は他所でやってくれて構わないよ
あと動的型と静的型とか、そういう思想に近いのも他所でやってね
C#に関係ないから
邪魔だから

邪魔って分かる?
分からないなら死んでね
86デフォルトの名無しさん:2012/01/04(水) 15:49:02.51
はい死んだー↓ キミ今死んだよ
87デフォルトの名無しさん:2012/01/04(水) 15:51:05.98

           ______
          r〃〃〃 f7⌒ろ)
           l‖‖‖ ||   f灯
            |‖‖‖ ||   | |
            |儿儿儿._」⊥厶
           〔__o____o_≦ト、
.          i / ⌒  ⌒  ヽ )
          !゙ (・ )` ´( ・)   i/
          |  (_人__)    | \
          \  `ー'    /  / ー- 、
.          ,ィ(⊆≧リ≦⊇)〃   /     rク\
.       /   | ̄r少}¨ ̄〃   /    /′ ヽ
      〃 l   |  l| | l| 〃    /     /    └ヽ
     /    l  |l | |l/″   /      !  厂    \
    く,  Y   ! l」fレト!    /       | /        1
    丿  |   | 丿} じ’  /      | /         |
   /     l   | `¨      /      レ′        |

             真の思考停
    (在位 2009年9月16日〜2010年6月8日)

   民主朝の初代考停、言行不一致、虚言、脱税、
   そして外交において巨大な負の遺産を築いた。
88デフォルトの名無しさん:2012/01/04(水) 15:57:15.57
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;

namespace test
{
public partial class test2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string nmb = Request.QueryString["number"];
}
protected void Button1_Click(object sender, EventArgs e)
{
// ここでもnmb変数を使いたい
}

}
}

nmb変数を
protected void Button1_Click(object sender, EventArgs e)
内でも使用したいのですが、どうすれば良いのでしょうか。
89デフォルトの名無しさん:2012/01/04(水) 16:00:21.30
Regexオブジェクトを使ってWebページのHTMLの特定のタグを
抽出したいのですが文字化けしてしまい、いうまくできません。
どうすればいいのでしょうか?

<title>(?<text>.*?)</title>

http://www.atmarkit.co.jp/fdotnet/dotnettips/579regexmatch/regexmatch.html
のサイトをヒントにしているのですが
90デフォルトの名無しさん:2012/01/04(水) 16:08:59.98
>>88
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;

namespace test
{
    public partial class test2 : System.Web.UI.Page
    {
        string nmb;
        protected void Page_Load(object sender, EventArgs e)
        {
            nmb = Request.QueryString["number"];
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            // ここでもnmb変数を使いたい
            if(nmb != null)//いらないかな?
            {

            }
        }

    }
}
91デフォルトの名無しさん:2012/01/04(水) 17:49:24.36
>>89
HTMLは文字コードが何種類もある
JIS シフトJIS euc-jp utf8などなど…
そのコードにあった方法でデコードする必要がある

決まったサイトにしかアクセスしないならそのサイトの文字コードでデコードするようにしたらいい
サイトのソースを見ると
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
と書いてあれば
charset=Shift_JISなのでシフトJISとわかる

あとはこのあたりかな
http://dobon.net/vb/dotnet/file/readfile.html
http://www.atmarkit.co.jp/fdotnet/dotnettips/302wcget/wcget.html
92デフォルトの名無しさん:2012/01/04(水) 18:00:41.93
入力したら即utf8に変換して内部では常にutf8で処理するのがオススメ
93デフォルトの名無しさん:2012/01/04(水) 19:48:56.71
>>89ですがなんとかできました。
ありがとうございました。
94デフォルトの名無しさん:2012/01/04(水) 19:53:08.07
metaに書くの止めてぇ
ちゃんとヘッダ返してよ
あの人を返してよ
95デフォルトの名無しさん:2012/01/04(水) 20:13:08.02
>>90
なるほど、変数の宣言だけを外に出せば良いのですね!!
勉強になります。
96デフォルトの名無しさん:2012/01/04(水) 20:41:13.17
QueryStringは毎度同じ値が送られてくるんでPage.Loadでプライベート変数に入れればいいけど、
リクエスト間で変わる値・1度しか送られない値はViewStateやSessionに保存しないとダメだよ
97デフォルトの名無しさん:2012/01/04(水) 20:52:21.75
自作のクラスライブラリを作りたいのですが
使う時にインスタンスを作った時に実行される部分を作るにはどうやって書けば良いでしょうか?
98デフォルトの名無しさん:2012/01/04(水) 20:54:44.21
class Hoge {
private string foo = /*ここと*/;
public Hoge() { /* ここ */ }
}
99デフォルトの名無しさん:2012/01/04(水) 21:01:02.42
コンスト…ラクタァーッッッッッッッッッッッッッツ
静的なのもあります

static ClassName() {
}

静的な場合
・パラメータを与えることができません
・アクセス修飾子をつけてはいけません
100デフォルトの名無しさん:2012/01/04(水) 21:02:04.45
インスタンス作った時ゆうてるやないか
101デフォルトの名無しさん:2012/01/04(水) 21:03:38.82
言ってみたかっただけです
102デフォルトの名無しさん:2012/01/04(水) 21:07:16.50
まあライブラリ作るって言うんなら.cctorの方も知っとくべきだな
103デフォルトの名無しさん:2012/01/04(水) 21:08:07.78
んん?
使う時のコードじゃなくてDLLの方のコードなんですが・・・
Mainとか書いても受け付けてもらえないみたいですし・・
folderBrowserDialogもどきなんですがフォームアプリのテンプレートを弄って作れますか?
104デフォルトの名無しさん:2012/01/04(水) 21:09:32.76
ない
クラスごとに>>99書く
105デフォルトの名無しさん:2012/01/04(水) 21:10:11.48
>>99正解
おめでとう
106デフォルトの名無しさん:2012/01/04(水) 21:11:04.13
ちょっと何言ってるかわかんない

dllだろうが何だろうが
インスタンス化されるときはコンスラクタが呼ばれるだろ
107デフォルトの名無しさん:2012/01/04(水) 21:11:39.40
インスタンスメンバーとは限らんでしょ
108デフォルトの名無しさん:2012/01/04(水) 21:12:56.59
>使う時のコードじゃなくてDLLの方のコードなんですが・・・
>Mainとか書いても受け付けてもらえないみたいですし・・

DllMainはどう書くんですかみたいな質問じゃねーの
109デフォルトの名無しさん:2012/01/04(水) 21:15:24.86
もう少し詳しい挙動がほしいな
そのMainの中でどういう処理をしたいのか
110デフォルトの名無しさん:2012/01/04(水) 21:23:13.79
いろいろ書いたけどエラーばっかりだ・・
ダイアログを出すDLLなんですがまず使うのはフォームでいいですよね?
使う時にはインスタンスを作って
instance.startPath = hogestring;
instance.ShowDialog(this);
Console.WriteLine(instance.Result);
みたいに使いたいです。

DLLの中身になる部分はフォームアプリにして出来てます
111デフォルトの名無しさん:2012/01/04(水) 21:32:44.55
その"エラー"の詳細を貼れよ
とりあえずSTAThreadにはなってそうだが
112デフォルトの名無しさん:2012/01/04(水) 21:34:21.61
人の質問に答えないのは大幅減点だぜ
早いところ問題を解決したいのは分かるが、少し落ち着け
113デフォルトの名無しさん:2012/01/04(水) 21:50:05.34
namespace FolderBrowserDialogEX
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void InitializeComponent()
{
this.SuspendLayout();〜略〜this.ResumeLayout(false);
}
private void Form1_Load(object sender, EventArgs e)
{}
}
static class FolderBrowserDialogEX
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
すみません
Mainの中ではプロパティで与えられたstringやboolを受け取って
それに応じたフォームを表示したいです。
とりあえずみたいにしたらエラーでなくなったけど指摘されてる文字がありますね・・
(長文スマソ)
114デフォルトの名無しさん:2012/01/04(水) 22:01:42.79
連投すみませんでした。
なんとなく出来たみたいなので作ってあるコードをコピペしてみます。
[STAThread] はあっても無くてもフォームが出ましたがそれについても調べてみます。
どうもありがとうございました。
115デフォルトの名無しさん:2012/01/04(水) 22:07:49.81
STAThreadってのはスレッドの実行モードで、これが指定されてないといろんな機能が使えない
たとえばクリップボードとか
呼び出し元もFormアプリならSTAになってるはずだけど、コンソールアプリからSTA必須のコンポーネントを読んでも動かないからね

あとFolderBrowserDialogEX.Mainは呼ばれてないんじゃないかな?
116デフォルトの名無しさん:2012/01/04(水) 22:11:21.65
例えば、string str = "2012/11/31";
strが正しいかどうかをチェックするにはどうすれば良いのでしょうか。

IsDateメソッドを使用すると言うことまでは分かったのですが、
If (IsDate(str))としたところ、
名前 'IsDate' は現在のコンテキスト内に存在しません。と言うエラーが表示されます。
117デフォルトの名無しさん:2012/01/04(水) 22:16:34.30
その関数はVBじゃないと使えないもん

"yyyy/MM/dd"とDateTime.TryParseExactでできっかな
規定のフォーマット指定子がありそうだけど面倒だからみてなす
118デフォルトの名無しさん:2012/01/04(水) 22:17:48.95
IsDateの実態はMicrosoft.VisualBasic.dllのMicrosoft.VisualBasic.Information.IsDateだからね
実装が怪しいのでVBでもTryParse使った方がいいけど
119デフォルトの名無しさん:2012/01/04(水) 22:20:12.05
仕様書に「日付はyyyy/MM/dd形式とする」と書いてあったから
それを解析するのにTryParseExactでyyyy/MM/ddって書式指定したら
2011/1/1がエラーになるってクレームが来た
知らんがな
120デフォルトの名無しさん:2012/01/04(水) 22:22:38.81
コード書かない人間がカスタム書式指定子を把握している訳ないだろ
121デフォルトの名無しさん:2012/01/04(水) 22:26:42.64
仕様書書いた奴が悪いw
122116:2012/01/04(水) 22:27:17.53
と言う事は、日付を検証するメソッドはC#に用意されていないと言う事ですね?
DataTime型に突っ込んでみてエラーの有無を拾いたいのですが、エラーを拾うにはどんなメソッドやプロパティが使用できますか?
123デフォルトの名無しさん:2012/01/04(水) 22:30:39.86
124デフォルトの名無しさん:2012/01/04(水) 22:30:41.07
全然人の話し聞いてないし読んでねえな
殺すぞ
125デフォルトの名無しさん:2012/01/04(水) 22:30:45.67
>>115
ほんとだ
static class FolderBrowserDialogEX全部消しても動きました。なんか不思議
FrameWork1.1のFolderBrowserDialogが使えるようになるまで(ファイルが多すぎて)10分近くかかってたので自作したんですが
使いたい機能が未対応で途中でVS2010にしたんですが4.0のダイアログが結構改善してました。せっかくここまで作ったのに┐(゚〜゚)┌
みなさんどうもありがと。

126116:2012/01/04(水) 22:37:14.44
理解が悪くて申し訳ないw
DateTime.TryParseExactを使用して文字列を日付型に入れ込む事は出来てるのですが、
やりたい事は"正しい日付かどうかの検証"なのです。
DateTime.TryParseExactは型を変更するメソッドとの理解が間違いでしょうか?
127デフォルトの名無しさん:2012/01/04(水) 22:38:09.94
戻り値
型: System.Boolean
s が正常に変換された場合は true。それ以外の場合は false。
128デフォルトの名無しさん:2012/01/04(水) 22:40:28.46
変換は要らないので検証だけというなら正規表現でも書くんだねえ。
またはVBに戻るか。
129デフォルトの名無しさん:2012/01/04(水) 22:43:26.42
>>126
32日とか入力してテストしたら、レス書くのと変わらん早さで判ると思うんだが・・・
130デフォルトの名無しさん:2012/01/04(水) 23:45:05.21
静的な配列を作ったのですがこいつにアクセスするにはどうしたらいいんでしょうか?

public static int[]hairetu={A,B,C};

インスタンスを作れないので単純に

hairetu[1];

だとcs0176が出てしまいます。
131>>130:2012/01/05(木) 00:01:06.51
>>130
すいません。環境に依存した問題のようなので取り下げさせていただきます。
クラス名.hairetuで通常はアクセスできるようですね。
132デフォルトの名無しさん:2012/01/05(木) 00:01:28.21
>コンパイラ エラー CS0176
>インスタンス参照で静的メンバ 'member' にアクセスできません。typename を代わりに使用してください。

>>130のコードならこのエラーは出ないよね
なんで勝手に省略するのかな
133デフォルトの名無しさん:2012/01/05(木) 00:20:21.72
自作のDLLにメソッドを追加したいのですが、
使う時にインスタンスを作った時に現れるようにするにはどこに書けば良いでしょうか。
下のものを書いても出ませんでした。
public void Reset(bool b)
{
//変数を初期化
}

instance.Show(this);
と同じように
instance.Reset(true); とやりたいです。
134デフォルトの名無しさん:2012/01/05(木) 00:24:35.99
1) 君が言うDLLはC#の物なのか?C++とかいわないよね?
2) C#のDLLとした場合なぜ「どこに書けばいい?」と聞くのにメソッドを追加したいクラスが晒されないのだろうか


135デフォルトの名無しさん:2012/01/05(木) 00:33:19.40
流石にエスパーを期待しすぎだ
何がしたいのか具体的に書け。
箇条書きで短く簡潔にまとめて書くと、自分の言いたいことが素直に伝わるぞ。
136デフォルトの名無しさん:2012/01/05(木) 00:34:03.29
>>79-82
って同じ人?無自覚にまきちらした自分が否定されて傷ついたのかもしれないけど
C#で再帰じゃないと書けないコードって例えば何よ?
それをまともに提示できないなら
コード書く能力がたりない事実を見ないようにしてるだけだと思う
137デフォルトの名無しさん:2012/01/05(木) 00:40:10.45
もっとMSDNが多様な構文を記載してくれてたり、
応用事例を挙げててくれてたり、
わかりやすく書いてくれてたりしないだろうかね。
138デフォルトの名無しさん:2012/01/05(木) 00:41:37.93
そういうのは外部の本とかの役目でしょ
139デフォルトの名無しさん:2012/01/05(木) 00:42:38.59
すみません。
DLLはC#です。
2)がちょっと意味が分かりませんがコードはすべて
public partial class FolderBrowserDialogEX: Form
{ }
この中に書いてあります。
Show()他、既定のメソッドがいくつかあるのでそこに並べて書けば良いのかと思って探したのですが、
書き込めるような箇所にはなっていなかったのでだめでした。
140デフォルトの名無しさん:2012/01/05(木) 00:44:47.46
そういうのは外人の本とかの役目でしょ
141デフォルトの名無しさん:2012/01/05(木) 00:48:37.72
>>138
どんな本がいいの?
未だにAmazonのプログラムカテゴリでc++の次がJAVAなんだけど、
c#ってまだマイナーなの?

>>140
どの本なの?
142デフォルトの名無しさん:2012/01/05(木) 00:56:06.81
>>136
割り込んで悪い。

やり取りを全部読んだわけじゃないけど、俺的には再帰みたいなありふれたテクニックを
学校の教科書の中でしかお目にかからないもののように認識してるあんたの方が
ちょっと非常識に感じるけど....

>>139
言ってることが意味不明かと。
143デフォルトの名無しさん:2012/01/05(木) 00:57:08.10
144デフォルトの名無しさん:2012/01/05(木) 00:59:40.81
>>139
クラス名を晒せと言っているのではなく、クラスのソースを晒せと言うこと。
>>133で「出す」って言ってるけど、何を出したいのかを説明して。
145デフォルトの名無しさん:2012/01/05(木) 00:59:51.86
>>139
こっちでやってみたけど問題なくReset追加してアクセスできたぞ

↓FolderBrowserDialogEXを使うwinform

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ClassLibrary1;

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

        private void Form1_Load(object sender, EventArgs e)
        {
            ClassLibrary1.FolderBrowserDialogEX fbdFX = new FolderBrowserDialogEX();
            fbdFX.Reset(true);
            fbdFX.Show();
        }
    }
}
146デフォルトの名無しさん:2012/01/05(木) 01:00:54.87
>>145の続き
クラスライブラリ側

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ClassLibrary1
{
    public class FolderBrowserDialogEX : Form
    {
        public void Reset(bool b)
        {
            this.Text = b.ToString();//変数を初期化
        }
    }
}
147デフォルトの名無しさん:2012/01/05(木) 01:02:17.42
148デフォルトの名無しさん:2012/01/05(木) 01:04:51.36
C#かわいいよC#
149デフォルトの名無しさん:2012/01/05(木) 01:06:05.82
有料レクチャー君の話じゃないけどマジで
作業中のプロジェクトさえ見れば一発なんだけどなw

よくわからん質問から質問の意図を探りコードを貼って回答とかあほくさ
150デフォルトの名無しさん:2012/01/05(木) 01:10:59.61
>>144
クラス内のコードはForm_LoadやButton_ClickやtreeViewを追加したり展開したりという一般的なものなので
特に関係ない部分のように思うんですが・・・
こんなのがあります↓
private void Form1_Load(object sender, System.EventArgs e)
private void treeView1_DoubleClick(object sender, System.EventArgs e)
private void button2_Click(object sender, System.EventArgs e)
とか
public FolderBrowserDialogEX()
{
InitializeComponent(); ←フォームの大きさなど初期値を設定
}
こういうのがありあます。

出ないというのは
DLLを使う時に
myDialog.FolderBrowserDialogEX f = new myDialog.FolderBrowserDialogEX();
出ないというのは
Resetのメソッド名がコードデザイナの自動で出るポップアップの中のメンバに無いという意味です。すみません
151デフォルトの名無しさん:2012/01/05(木) 01:13:04.40
出ないというのはf.を押したときにポップアップのメンバに現れないという意味です。
152デフォルトの名無しさん:2012/01/05(木) 01:16:35.18
>>150
http://www.dotup.org/uploda/www.dotup.org2473375.png
でますよ

ソース晒せって言われてるのは「どうせ作り方が悪いだろう。あれこれ説明するより現物見たほうが早い」
ってことだよ

日本語で四の五のやるのほどプログラムにおいて無駄なことはない
153デフォルトの名無しさん:2012/01/05(木) 01:19:04.99
良く見たら出てましたo(*≧з≦)o
スマソ≡≡≡=(ノTдT)ノ ワアァァ・・!!
154デフォルトの名無しさん:2012/01/05(木) 01:22:33.04
>>136
例えば最初のTreeNodeの探索など、再帰を使わずに効率よくシンプルに書ける方法無いと思うがな
再帰より少ないステップ数で書ける物なら書いてみろよ
155デフォルトの名無しさん:2012/01/05(木) 01:27:46.47
ツリー構造のデータの処理に使う分には大抵深さは知れてるし
関数型とかに馴染み無くても一般的にわかりやすいからな
それ以外は高確率で逝く
156デフォルトの名無しさん:2012/01/05(木) 01:34:44.61
Main()の中で全体をtry{}に入れててもエラーで終了してしまうことがあるんですが、どうすれば正常に終了させることができますか?
157デフォルトの名無しさん:2012/01/05(木) 01:35:34.74
>>156
護摩でも焚いとけ
158デフォルトの名無しさん:2012/01/05(木) 01:36:58.18
ID欲しいねえ
159デフォルトの名無しさん:2012/01/05(木) 01:43:30.30
>>142
君の周りでありふれてても、それは君の周りのレベルが低いからなんじゃないかな
まともなコードで見たこたないや
160デフォルトの名無しさん:2012/01/05(木) 01:44:59.42
>>145
>>2使おうぜ読む気になれん
161デフォルトの名無しさん:2012/01/05(木) 01:46:29.93
ボタン押したらメッセージ表示させるとか
できるようになりました^^電卓もつくれるようになりました

次は何をすればいいですか?
162デフォルトの名無しさん:2012/01/05(木) 01:48:52.68
163デフォルトの名無しさん:2012/01/05(木) 01:50:02.72
>>161
つメトロノーム
164デフォルトの名無しさん:2012/01/05(木) 01:50:03.40
>>161
電卓のソースコードを公開する
165デフォルトの名無しさん:2012/01/05(木) 01:54:47.38
>>159
逆だと思うけどね俺は。まあ、君みたいなタイプと議論してもたぶん無駄だな....

まあ一応具体的な問題を振っておく。
では例えばWindows FormのControlを引数にとって、そのControlの内部コントロールを
「再帰的に」全て取得してControl[]で返すメソッドを再帰呼び出しを使わずに
書いてみて欲しい。
166デフォルトの名無しさん:2012/01/05(木) 02:00:37.23
>>155
キャリアがそれなりに長くて、例えばクイックソート組んで高確率で逝くスキルならプログラミングやるべきじゃないぜ
167デフォルトの名無しさん:2012/01/05(木) 02:13:02.98
>>163 音楽好きなんですかね
>>164 恥ずかしいです。ほんとショボイ電卓ですよ
168デフォルトの名無しさん:2012/01/05(木) 02:13:47.13
>>165
そのAPI設計が下手なんだよ。気づけないのかなあ。
169デフォルトの名無しさん:2012/01/05(木) 02:14:57.68
> 「再帰的に」全て取得してControl[]で返す
コレね。脳が老化してるよきっと。
170デフォルトの名無しさん:2012/01/05(木) 02:29:37.63
>>169
高レベルの君は、>>154程度の宿題に何時まで掛かっているのかね?
171デフォルトの名無しさん:2012/01/05(木) 02:31:25.82
出来ない奴のひがみキタコレ
172デフォルトの名無しさん:2012/01/05(木) 02:34:23.09
自分には出来ない
→他の人にも出来ないはずだ
→自分のやり方が正しい

成長出来ないダメグラマーの三段論法
173デフォルトの名無しさん:2012/01/05(木) 02:58:31.83
結局宿題解けない低レベル君だった訳かw
174デフォルトの名無しさん:2012/01/05(木) 03:30:30.91
むしろ再帰じゃないと出来ないと本気で思ってるらしいレベルの低さに愕然
175デフォルトの名無しさん:2012/01/05(木) 05:07:25.26
そんな抽象的なことで喧嘩しても仕方ないだろう
鎧の上から殴り合いなんてまどろっこしいことしないで
裸でやれよ
176デフォルトの名無しさん:2012/01/05(木) 07:08:42.65
高レベルの人は口だけのようだから書いてみたが
再帰以上にシンプルにするのは無理だよなw
http://ideone.com/ZzUup

もしかすると高レベルの人が素晴らしいコード持ってくるかも知れないがw
177デフォルトの名無しさん:2012/01/05(木) 07:15:15.61
すみませんが・・・


File.Delete()しようとすると
System.UnauthorizedAccessException
がでます。Win7sp1です。

ファイルが存在しないとかはありません。
プロセス握ってることもないです(手動だと消える)


なんでですかね?
178デフォルトの名無しさん:2012/01/05(木) 08:44:16.47
VS環境でif文の条件分岐でピクチャーボックスに表示する画像を変えるにはどうすればいいですかね・・・。
179デフォルトの名無しさん:2012/01/05(木) 08:54:19.69
>>177
UnauthorizedAccessって通りにアクセス権限がないんじゃない

>>178
ピクチャーボックスのImageプロパティかImageLocationプロパティに
条件に応じた新しい画像を指定してやりゃいいんじゃないの
180デフォルトの名無しさん:2012/01/05(木) 09:01:01.71
>>179
動かしているユーザーはadminiなんですけどね。なんでだろ?

GUIならあっさり消えますが。。。
181178:2012/01/05(木) 09:01:42.62
>>179
ありがとん。
とりあえず複数ピクチャーボックスを用意してVisibleを切り替えることでなんとかした。
ひとつのピクチャーボックスで複数の画像を切り替えたかったんだけどまあいいか・・・。
182デフォルトの名無しさん:2012/01/05(木) 09:22:36.94
>>180
UACかな、管理者として実行している?
183デフォルトの名無しさん:2012/01/05(木) 10:40:47.58
>>180
アプリに管理者権限つけてないから
184デフォルトの名無しさん:2012/01/05(木) 10:59:20.96
>>182
>>183
えー。すみません。やり方がわかりません。

ちなみにUSERにフルコントロールつけたら動作しました。。
185デフォルトの名無しさん:2012/01/05(木) 11:56:26.80
C++からの移植をやってるんですが、ポインタの代わりにC#で用いられる一般的な手法ってなんなんでしょうか?(unsafe以外で)
186デフォルトの名無しさん:2012/01/05(木) 12:00:56.25
参照
187デフォルトの名無しさん:2012/01/05(木) 12:03:56.50
ポインタは用途が汎用過ぎるので一つで代用できるものでもない
188デフォルトの名無しさん:2012/01/05(木) 12:14:11.73
>>186
参照だけど、ポインタがジャグ配列のようになってるデータを次々見ていけるような機能は無いね。
値を参照することは同じように出来るけど。

>>187
状況によってどんな代用をした事があるか?ってことでお願いします。
189デフォルトの名無しさん:2012/01/05(木) 12:18:26.91
なんで上から目線なのかw
質問の仕方が悪いから>>187のような話になってるのにw

こういうポインタのケースはどうすればいいですか?って例を出して個別に聞けよ
190デフォルトの名無しさん:2012/01/05(木) 12:19:08.02
>>188
まあジェネリックコレクションと言うかList<T>をポインタの代用にしているのかな?
Linq使えばC++より便利な時もあるし
191デフォルトの名無しさん:2012/01/05(木) 12:20:45.81
なんでソース晒せば一発で解決しそうなことをさも隣の席に座ってる人に
雑談レベルで投げかけるような質問の仕方するかね・・・
192デフォルトの名無しさん:2012/01/05(木) 12:25:06.75
一応突っ込んでおくか....
>>169
馬鹿だろあんた。
「再帰的に」、とは「再帰呼び出しを使って」という意味ではない。
というか、ゴチャゴチャ言ってないでやって見せてみろと。
193デフォルトの名無しさん:2012/01/05(木) 12:29:20.23
漠然とした質問を投げて後から小出しにしていくのは馬鹿の典型
194デフォルトの名無しさん:2012/01/05(木) 12:30:36.44
という漠然とした突っ込み。
それを言うなら、馬鹿の顕著な特徴は「自分に突っ込めない」こと。
195デフォルトの名無しさん:2012/01/05(木) 12:30:55.46
ID欲しいよ
196デフォルトの名無しさん:2012/01/05(木) 12:33:18.73
IDには馬鹿の馬鹿を補正したり抑止したりする機能も、
幼稚の幼稚を補正したり抑止したりする機能もないけどね。

いい加減これもうっとうしいから一言。
>>195みたいな一点突破主義って、ネトウヨ的っていうかファシズム的だよな。
197デフォルトの名無しさん:2012/01/05(木) 12:35:11.63
万能解が常に存在すると思ってる奴は世間知らずの甘ちゃん
198デフォルトの名無しさん:2012/01/05(木) 12:39:02.72
>>196
万能とは思ってないが無いよりましだから欲しいってだけ
199デフォルトの名無しさん:2012/01/05(木) 12:40:11.77
馬鹿は自分の馬鹿さが分からない馬鹿なんだよ
だからオウム返ししかできない
200デフォルトの名無しさん:2012/01/05(木) 12:48:26.52
IDがあってもお前らなら解析してしまいそうだ。
201デフォルトの名無しさん:2012/01/05(木) 13:17:13.44
日本語も保存されるテキスト共有サイト
http://qikpad.co.uk/

昔のチャットみたいなのであればいいのにね
202デフォルトの名無しさん:2012/01/05(木) 13:24:41.52
203デフォルトの名無しさん:2012/01/05(木) 13:39:44.62
少なくともIDがあれば>>196みたいなキチガイの一連のレスが判明して
キチガイを再確認できるけどな
204デフォルトの名無しさん:2012/01/05(木) 13:43:13.91
>>188
Array
205デフォルトの名無しさん:2012/01/05(木) 13:54:55.67
>>203
やっぱり思考がネトウヨ的だね。
と言ったところで理解できるとは思ってないが。
206デフォルトの名無しさん:2012/01/05(木) 16:29:51.45
人格攻撃するよりもプログラム書いて示すほうが効率的なのになあ
207デフォルトの名無しさん:2012/01/05(木) 16:33:40.46
コード書くのが目的なら2chはあまりにも非効率ッ
208デフォルトの名無しさん:2012/01/05(木) 16:39:34.88
烈海王で脳内再生された
209デフォルトの名無しさん:2012/01/05(木) 16:52:45.08
ワロタ
210デフォルトの名無しさん:2012/01/05(木) 16:58:28.93
人民元暴落間近、実はマイナス成長の中国GDP

アメリカの研究者の中には、今年の中国のGDPはマイナス10%ぐらいではないかと推計する人もいます。
そもそも中国の国家統計局が出している数字は、「架空の物語」です。

全国人民代表大会で決まった成長率を覆すような数字を、地方政府が上げるはずがない。16%だの24%だの、ありえない数字を出してきます。
みんなそれを知っていますから、加減してほどよい数字を作り上げる。それが国家統計局の仕事なんです。

中国の現状からすればGDPが上がるとは思えません。個人消費は明らかに減っています。住宅はといえば6500万戸が空き家状態。
企業は設備投資どころではなく、政府の財政支出も限界に来ています。

日本の新聞もようやく中国の不動産バブル崩壊について書き始めました。しかし内容は必ずしも正しくない。
不動産価格が上海で25%、北京で20%下落したといいますが、実際には40%ぐらい下がっていると思われます。

JBPRESS
http://jbpress.ismedia.jp/articles/-/34131?page=2


世界のGDP(単位10億ドル)

1位 アメリカ 14,526.55
2位 中国 5,878.26
3位 日本 5,458.80



1位 アメリカ 14,526.55
2位 日本 5,458.80
3位 中国 5290.43
211デフォルトの名無しさん:2012/01/05(木) 17:10:43.03
徹底的にハードなネトウヨコピペするぞ!まで読んだ。
212デフォルトの名無しさん:2012/01/05(木) 19:06:23.13
型変換がキツい・・・どうしようもなさそうだ・・・
213デフォルトの名無しさん:2012/01/05(木) 19:28:44.72
うん
214デフォルトの名無しさん:2012/01/05(木) 23:55:27.68
System.Web.HttpUtilityでWebページのソースコードを変換したいのですが
System.Web.まで入力するとメンバがパーミッション関係が3つくらいしかでなくて
参照設定の中にもないのですが、どのようにしたら良いでしょうか?
215デフォルトの名無しさん:2012/01/06(金) 00:00:08.19
.NET 4 ClientProfileから.NET 4に変更する
216デフォルトの名無しさん:2012/01/06(金) 00:02:01.98
カコログ参照

802:デフォルトの名無しさん[sage] 2011/12/07(水) 23:56:13.56
Defaultの.NET Framework Client Profileになってると
参照設定しようにも、System.Web が見当たらない
んでHttpUtility.UrlDecodeが認識してくれなくて一日潰した・・・

805:デフォルトの名無しさん[sage] 2011/12/08(木) 00:31:45.81
>>802
そんなことのためにFullに変更するのはやめましょう
WebUtilityかUri.EscapeXxxを。
217デフォルトの名無しさん:2012/01/06(金) 00:04:14.80
ありがとうー両方やってみます。
218デフォルトの名無しさん:2012/01/06(金) 00:48:22.42
public System.Threading.Thread t;
と宣言してあるスレッドがボタンを押すと
t = new System.Threading.Thread(new System.Threading.ThreadStart(hogehogeStart));
で実行されるのですが、
hogehogeStartの中で状態を表示するために
label2.Text = "hogehoge";
とやりたいのですが、
「有効ではないスレッド間の操作: コントロールが作成されたスレッド以外のスレッドからコントロール 'label2' がアクセスされました。」
となってしまいます。
これはどうやれば出来るでしょうか?
WinFormアプリです。
219デフォルトの名無しさん:2012/01/06(金) 00:50:05.91
今作ってるコード出せ
日本語でぐだぐだ説明するんじゃねえ
220デフォルトの名無しさん:2012/01/06(金) 00:52:05.20
BeginInvokeを使う
もしくは直接スレッド使うのやめてBackgroundWorkerでReportProgress呼んで
ProgressChangedイベントハンドラでラベル更新
221デフォルトの名無しさん:2012/01/06(金) 00:52:40.99
>>218
生兵法は怪我のもと。
コピペコードで誤魔化せる分野じゃないから、ちゃんと真面目に勉強した方がいいと思う。
しかし酷いコードだな。
222デフォルトの名無しさん:2012/01/06(金) 01:05:46.92
http://pastebin.com/sHMQR5En
貼ってみました。こんな感じなんですが・・・
酷いというのはどのあたりでしょうか
223デフォルトの名無しさん:2012/01/06(金) 01:11:53.06
224デフォルトの名無しさん:2012/01/06(金) 01:33:46.40
できました。
分かりやすく書いて頂いていろいろ勉強になります。
今までは上の方法で出来ていたのですごく複雑になった気がするのですが
こっちが正しいようなので覚えるしかないですね。助かりました。
225デフォルトの名無しさん:2012/01/06(金) 01:39:15.42
>>224
今までっていうのはつまりThread使う前ってことかな?

一応普段何気なく書いてるプログラムっていうのはUIを処理するThread上で
動いてるんだけど、今回のThreadを使うことでUI Threadとは別のThreadを
作って動かしてることになるから、異なるThread間のやり取りはちょっと面倒な
ことになる
226デフォルトの名無しさん:2012/01/06(金) 02:05:01.39
今まではFramework1.1で>>218の書き方でフォームのコントロールを読み書きできたんですが・・
227デフォルトの名無しさん:2012/01/06(金) 05:02:39.85
デバッグモードじゃないとControl.CheckForIllegalCrossThreadCallsがデフォルトでtrueにならないから、というのと
Handleプロパティに明示的/内部的に触らないと例外が出ず、潜在的なバグの原因になるということだろうね
228デフォルトの名無しさん:2012/01/06(金) 21:58:13.25


 東京にある6つのキー局の内、製作から財務まで一貫して朝鮮人が行ってるテレビ局が1つ
 中国共産党から毎年大量の反日工作費が流れているテレビ局が2つ
 もろに北朝鮮と繋がっているテレビ局が1つ  
年寄はまだまだテレビという外国人に騙され続ける
229デフォルトの名無しさん:2012/01/06(金) 23:02:59.69
俺は2chで世の中の真実に覚醒した!というネトウヨ脳w
まで読んだ。
230デフォルトの名無しさん:2012/01/06(金) 23:05:17.73
ネトウヨも天皇はすばらしいものだというんだよ。
お仕着せの価値観を信じ込んでしまうバカってのはどうしてもいなくならない。
231デフォルトの名無しさん:2012/01/06(金) 23:13:20.18
ひ弱な現代っ子のネトウヨが天皇なんか本気で崇拝してるわけないでしょw

酷使様を気取るのにカッコが付かないから天皇という意匠を利用してるだけ。
それ自身が不敬だということに気づかないのが何よりの証拠。
まあそれ以前に単に頭が悪いというのもあるがw
232デフォルトの名無しさん:2012/01/07(土) 00:41:55.30
enum Fruits{
apple,
banana,
melon
}

string test = "banana";

みたいに定義して、

(Fruits)test で Fruits.banana

みたいに扱う方法ってないの?
文字列から列挙型に変換したいんだけど・・・
233デフォルトの名無しさん:2012/01/07(土) 00:52:41.55
234デフォルトの名無しさん:2012/01/07(土) 10:19:34.35
>>233
知らなかった。
235デフォルトの名無しさん:2012/01/07(土) 11:25:22.87
俺も知らなかった。

どうせなら TryParse( ) も欲しいところ。
236デフォルトの名無しさん:2012/01/07(土) 13:03:22.44
Enum.TryParse、.NET 4とSilverlight 4にはあるよ。
237デフォルトの名無しさん:2012/01/07(土) 13:16:21.31
知らなかった。

どうせなら 「ここにみんなの欲しいものを入れてね」 も欲しいところ。
238デフォルトの名無しさん:2012/01/07(土) 13:28:28.08
なんで知らないんだよ…
ITアットマーク?のc#入門にズバリ書いてあったと思うけど…
239デフォルトの名無しさん:2012/01/07(土) 13:31:28.30
俺は知ってたけど、知る知らないの問題じゃないね。
>>232みたいな疑問がわいたら、普通は真っ先にEnumのメンバ一覧を見なきゃ。
何のためのOOPよ。
240デフォルトの名無しさん:2012/01/07(土) 13:33:56.45
てかお前らそんなことすら乗ってない入門書やサイトで勉強してんのかよ
241デフォルトの名無しさん:2012/01/07(土) 13:35:38.64
ここがID表示板だったら面白いだろうなぁw
242デフォルトの名無しさん:2012/01/07(土) 13:37:15.97
なんで?ちなみに
>>233
>>238
>>240
が俺
243デフォルトの名無しさん:2012/01/07(土) 15:45:58.80
>>239
enumの場合はちょっと特殊かもね
Enumクラスというのがあるというのは知識問題だから
244デフォルトの名無しさん:2012/01/07(土) 16:10:06.49
数字を

1st
2nd
3rd

みたいな表記に直してくれるメソッドない?
245デフォルトの名無しさん:2012/01/07(土) 16:11:03.98
これに関してははっきり言える

ない
246デフォルトの名無しさん:2012/01/07(土) 16:32:24.00
ららららいぶらり
らららら
247デフォルトの名無しさん:2012/01/07(土) 16:35:05.58
なさそうなら自分で作ればいいのに
クラスとか作って数字突っ込んだら文字返すとかその程度でしょ?
248デフォルトの名無しさん:2012/01/07(土) 16:39:51.51
Mapで変換テーブルでも組んでおけばいいと思うよ。
249デフォルトの名無しさん:2012/01/07(土) 16:43:01.62
int CompareTo(object obj) {}の上書きで
return Date型 - Date型 > 0 のような感じで大小を比較したいのですが、
どうすればいいですか?
250デフォルトの名無しさん:2012/01/07(土) 16:44:42.23
ええええすぱーきてー
251デフォルトの名無しさん:2012/01/07(土) 16:48:18.18
C#で書かれたHadoopみたいなものはないでしょうか?
Javaを入れられない環境なのです
252デフォルトの名無しさん:2012/01/07(土) 16:50:19.75
>>236
おお、ホントだ、ひとつ賢くなったよ。

>>238
単に、>>232 みたいな疑問がわかなかったからだよ。

>>247-248
て言うか、Web にいくらでも転がってるでしょ。
まあ、>>244 は単に「あったらいいな」を聞きたかっただけかもしれないけど。
253デフォルトの名無しさん:2012/01/07(土) 16:54:15.74
>ITアットマーク?のc#入門にズバリ書いてあったと思うけど…

お前某カタカナ三文字の単語を言わせたいだけだろ
254デフォルトの名無しさん:2012/01/07(土) 17:00:17.09
255デフォルトの名無しさん:2012/01/07(土) 17:17:32.49
>>249
DateTimeなら >,<,+,- 使えるよ
自作クラスなら演算子オーバーロード
256デフォルトの名無しさん:2012/01/07(土) 17:24:23.71
カタカナ3文字といえば、、?
257デフォルトの名無しさん:2012/01/07(土) 17:25:27.35
258デフォルトの名無しさん:2012/01/07(土) 17:33:05.28
>>257
サザエさんのたまのSEで
259デフォルトの名無しさん:2012/01/07(土) 17:34:11.49
260デフォルトの名無しさん:2012/01/07(土) 18:29:02.64
>>259

261デフォルトの名無しさん:2012/01/07(土) 18:39:42.64
>>251
おまえの環境にも境遇にも興味ないけど、いい加減現実を見たら?
262デフォルトの名無しさん:2012/01/08(日) 00:25:50.47
下のようなswitch式でコントロールの種類で分岐させたいのですが
Control型は使えないというエラーが出てしまいます。
同じようなことをするにはどういう方法でやれば良いでしょうか?

switch (System.Windows.Forms Control cnt)
case (System.Windows.Forms.TextBox):
case (System.Windows.Forms.NumericUpDown):
263デフォルトの名無しさん:2012/01/08(日) 00:28:24.08
それよりなんでそんなぶっ細工なコードの書き方なの?
すでにそんな変なコードがあってそれをどうにかしてるの?
264デフォルトの名無しさん:2012/01/08(日) 00:32:42.47
swichは基本的に数値だけじゃなかったっけ?
265デフォルトの名無しさん:2012/01/08(日) 00:32:45.11
>>262
is
でもまずはそんなクソなことしなくて済むように考えましょう
266デフォルトの名無しさん:2012/01/08(日) 00:33:38.09
swich・・・x
switch・・・○
267デフォルトの名無しさん:2012/01/08(日) 00:39:16.72
switchは整数と文字列しか受け入れない

型名の文字列取り出して分岐するっての可能ではあるが
お勧めできないからやりたければ自分で調べてちょーだい
268デフォルトの名無しさん:2012/01/08(日) 01:39:26.21
C#初代から始めて、今のいままで全然気付かなかったぜぇ
今日の今まで全然気付かなかった衝撃の新事実発見
class DisposeTest : IDisposable
{
 public void Dispose() { MessageBox.Show("Dispose"); }
}
IEnumerable<int> TestEnumrate() { using (new DisposeTest()) yield return 0; }

void Test()
{
 foreach(var tmp1 in TestEnumrate()) {} // Dispose() が呼ばれる

 var tmp2 = TestEnumrate();
 while(tmp2.MoveNext()) {} // これでも Dispose() が呼ばれる
}
なぜこれで try catch 句は、入れられないのだろう・・・
269デフォルトの名無しさん:2012/01/08(日) 01:39:47.56
そしてさらなる衝撃の新事実 http://d.hatena.ne.jp/NyaRuRu/20070331/p1
class TestC // IEnumerable 持ってない
{
 public class TestE : IDisposable // IEnumerator 持ってない
 {
  public int Current { get { return 0; } }
  public void Dispose() { MessageBox.Show("Dispose"); }
  public bool MoveNext() { return false; }
  public void Reset() { }
 }
 public TestE GetEnumerator() { return new TestE(); }
}
void Test()
{
 foreach (var item in new TestC()) {}
}
これで動くしw
だが、IDisposableはインターフェイスを持って無いと動かないらしい
270デフォルトの名無しさん:2012/01/08(日) 02:06:30.86
IEnumerableの挙動って想像以上にややこしいんだな
yield return を使ったコードを書くと、while文でも Dispose するが 自前コードだと駄目。
終点に到達した時に Dispose しているみたいだけれど、迂闊にいれると二重 Dispose になってしまったりと・・・
271262:2012/01/08(日) 02:12:05.93
>>262
の書き方がすごく不評なんですが、具体的にどういう意味で不細工なんでしょうか?
素人なので実感がないので教えていただきたいです。
取り合えず質問の件はisで解決できました・・・
272デフォルトの名無しさん:2012/01/08(日) 02:16:16.95
>>271
コントロールをそういう風に判断するコードを書くってケースがそもそも
想像できないんだよな

なんでそういうコードが必要なのか知りたいくらい
273デフォルトの名無しさん:2012/01/08(日) 02:19:11.55
まずコンパイル通らないコードは不細工だよ
誰がどう思おうと
274デフォルトの名無しさん:2012/01/08(日) 02:41:28.57
酷い回答する奴らだな・・・

>>262
汎用的なのは案外難しい話で、でも単純にその程度でしかないのなら、if 文で書ききってしまうのがベストだと思います。
if(cnt is System.Windows.Forms.NumericUpDown) return 1; // enum の方がいいかもね
if(cnt as System.Windows.Forms.TextBox != null) return 2; // 派生クラスの可能性にも注意
という形で、一旦整数なりenumなりにマッピングしたのち、switchで分岐。
if文の並び順にも注意すべし、先に基底クラスを調べてから派生クラスを調べると全部基底クラスとして判定されてしまいます。
275デフォルトの名無しさん:2012/01/08(日) 02:58:49.52
>>270
Dispose()は何百回呼ばれても動作するように実装しないと駄目だから、
二重 Dispose なんて用語はないし、そういう状況を考慮する必要もない

268と269は全然等価じゃないし、269はDipose()呼んでないんだから
実行されないのは当たり前
276デフォルトの名無しさん:2012/01/08(日) 03:02:10.79
>>275
そんな所はどうでもいいと思います、普通そうするのは当たり前w
ただ、yield return 形式で作り出したオブジェクトと互換のあるような順序で
Disposeを実行するクラスを作る事は自前では可能なのかなとか?
そんな所、ソコイラにいちいち糞な回答して引っ掻きまわしているのはあんただろ。
277デフォルトの名無しさん:2012/01/08(日) 05:20:47.62
yield returnを使用したアセンブリをreflectorなどで覗いてみては?
そういう自前クラスが勝手にできてるから
278デフォルトの名無しさん:2012/01/08(日) 09:57:55.97
あんまり関係ないけどDisposeは何回呼んでも問題ないように実装しなければならないと仕様で決まっている
279デフォルトの名無しさん:2012/01/08(日) 11:47:30.28
久しぶりにスレ見たけどレベル下がりすぎ
280デフォルトの名無しさん:2012/01/08(日) 11:54:15.43
自分も型switchが欲しくなって、ちょっと便利なヘルパーライブラリ作って見た
281デフォルトの名無しさん:2012/01/08(日) 11:55:58.13
/// <summary>型からenumへマッピングするアトリビュート</summary>
[AttributeUsage(AttributeTargets.Field, AllowMultiple = false)]
class TypeMapEnumAttribute : Attribute
{
 /// <summary>比較優先順位(小さいほど早く比較)</summary>
 public readonly int Order;

 /// <summary>マッピングしたい型</summary>
 public readonly Type Type;

 /// <summary>マッピングしたい型を指定する</summary>
 /// <param name="order">比較優先順位(小さいほど早く比較)</param>
 /// <param name="type">マッピングしたい型</param>
 public TypeMapEnumAttribute(int order, Type type) { Order = order; Type = type; }

 /// <summary>型をenumにマッピングする</summary>
 /// <typeparam name="TEnum">マッピング情報 TypeMapEnumAttribute 入りのenum型</typeparam>
 /// <param name="o">型を調査したいオブジェクト</param>
 /// <param name="id">型からTEnum値にマッピングされた値</param>
 /// <returns>マッピングに成功したならばtrue</returns>
 public static bool ToEnum<TEnum>(object o, out TEnum id) { return ToEnumImp<TEnum>.ToEnum(o, out id); }
282デフォルトの名無しさん:2012/01/08(日) 11:57:07.62
 /// <summary>ToEnumの実装</summary>
 class ToEnumImp<TEnum>
 {
  class TypeAndEnum : IComparable<TypeAndEnum>
  {
   public readonly Type Type;
   public readonly TEnum Enum;
   public readonly int Order;
   public TypeAndEnum(Type t, TEnum e, int o) { Type = t; Enum = e; Order = o; }
   public int CompareTo(TypeAndEnum other) { return Order.CompareTo(other.Order); }
  }
  static readonly TypeAndEnum[] fields;
283デフォルトの名無しさん:2012/01/08(日) 11:57:51.98
  static ToEnumImp()
  {
   Type type = typeof(TEnum);
   if (!type.IsEnum) throw new Exception("TEnumがenum型ではない");
   List<TypeAndEnum> fieldInfoList = new List<TypeAndEnum>();
   System.Reflection.FieldInfo[] fieldInfoArray = type.GetFields(
    System.Reflection.BindingFlags.Static |
    System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic);
   foreach (var fieldInfo in fieldInfoArray)
   {
    object[] attributes = fieldInfo.GetCustomAttributes(typeof(TypeMapEnumAttribute), false);
    if (attributes.GetLength(0) == 0) continue;
    TypeMapEnumAttribute typeMapEnum = (TypeMapEnumAttribute)attributes[0];
    TEnum e = (TEnum)fieldInfo.GetValue(null);
    TypeAndEnum tae = new TypeAndEnum(typeMapEnum.Type, e, typeMapEnum.Order);
    fieldInfoList.Add(tae);
   }
   fieldInfoList.Sort(); // 比較優先順位でソートする
   fields = fieldInfoList.ToArray();
  }
284デフォルトの名無しさん:2012/01/08(日) 11:58:21.86
  public static bool ToEnum(object o, out TEnum id)
  {
   if (o != null)
   {
    Type type = o.GetType();
    for (int i = 0; i < fields.GetLength(0); ++i)
    {
     if (type == fields[i].Type || type.IsSubclassOf(fields[i].Type))
     {
      id = fields[i].Enum;
      return true;
     }
    }
   }
   id = default(TEnum);
   return false;
  }
 }
}
285デフォルトの名無しさん:2012/01/08(日) 11:58:55.40
文字列使えるんだからType.Name(厳密にしたければFullName)でも並べとけってのは禁句なの?
286デフォルトの名無しさん:2012/01/08(日) 11:58:56.65
利用サンプル
enum ETypeMap
{
 [TypeMapEnum(1, typeof(System.Windows.Forms.Button))]
 Button,
 [TypeMapEnum(0, typeof(System.Windows.Forms.TextBox))]
 TextBox,
 [TypeMapEnum(999, typeof(System.Windows.Forms.Control))]
 Control,
}
287デフォルトの名無しさん:2012/01/08(日) 11:59:26.32
class TestClass
{
 static public void Test()
 {
  //object x = new System.Windows.Forms.Button();
  object x = new System.Windows.Forms.TextBox();
  ETypeMap typeId;
  bool result = TypeMapEnumAttribute.ToEnum<ETypeMap>(x, out typeId);
  System.Diagnostics.Debug.Assert(result, "マッピングされていない型を発見");
  switch (typeId)
  {
   case ETypeMap.Button: MessageBox.Show("Button"); break;
   case ETypeMap.TextBox: MessageBox.Show("TextBox"); break;
   case ETypeMap.Control: MessageBox.Show("その他のControl"); break;
   default: throw new System.Exception("switch文エラー");
  }
 }
}
288デフォルトの名無しさん:2012/01/08(日) 12:00:08.91
実装を長々と貼るな
いちいちenum定義して属性付けてとかするくらいなら型名取得して文字列でswitchの方がマシ
289デフォルトの名無しさん:2012/01/08(日) 12:00:48.64
>>285
それだと右クリックリファクターで一斉名前変更が出来なくなって凄く感じ悪くなる。
290デフォルトの名無しさん:2012/01/08(日) 12:00:57.50
ちょっと便利なコード貼るサイトも利用してほしいね
291デフォルトの名無しさん:2012/01/08(日) 12:02:50.23
>>289
caseの方にもtypeof並べるとか頭使おうぜー
292デフォルトの名無しさん:2012/01/08(日) 12:04:33.09
switch(a.GetType().Name){
case typeof(b).Name:
case typeof(c).Name:
case typeof(d).Name:
case typeof(e).Name:
default:
break;
}
293デフォルトの名無しさん:2012/01/08(日) 12:06:36.66
>>292 コンパイルできないねw
294デフォルトの名無しさん:2012/01/08(日) 12:08:17.35
Dictionary<Type, Action>でマッピングするような考え方の方がいいと思う
いちいちenum介すのはDRY的にやりたくないな
295デフォルトの名無しさん:2012/01/08(日) 12:09:47.00
>>294
Dictionaryは使いにくいと思う、単純に比較して以上終了とならない継承の問題があるので。
296デフォルトの名無しさん:2012/01/08(日) 12:12:01.60
貼られてる糞コードも解決してないぞ
297デフォルトの名無しさん:2012/01/08(日) 12:14:24.51
一応、簡単に対処するために比較優先順位を投入してあるんだけどね
もっとインテリジェントに、半順序ソートして自動検出できるようにもできるけど
それは今後の課題にしておく。
298デフォルトの名無しさん:2012/01/08(日) 12:14:24.87
こういうのはどういう状況下で必要になるんだろう
299デフォルトの名無しさん:2012/01/08(日) 12:15:24.67
いやそもそも単にis並べればええんちゃうんかと
ToEnumで線形検索しちゃってるんだからisの方が速いだろ
300デフォルトの名無しさん:2012/01/08(日) 12:19:24.87
>>298
オブジェクト指向を理解 { せず | できず } に、C# とかを使うはめになった時。
301デフォルトの名無しさん:2012/01/08(日) 12:20:40.95
オブジェクト指向を理解してC#使う人はどういう風に書くの
302デフォルトの名無しさん:2012/01/08(日) 12:21:24.88
>>300 虚しくない?
303デフォルトの名無しさん:2012/01/08(日) 12:21:28.44
>>284のToEnumの実装じゃ全くswitchの意味がないな
結局上から順に if (o is T1) else if (o is T2) ...とやってるのと同じことを
リフレクションで難しくクソ効率悪く書いてるだけだ
304デフォルトの名無しさん:2012/01/08(日) 12:27:32.80
まあ、質問者は効率なんて求めてないでしょ
自分の書きたいように書ければ満足なだけで
305デフォルトの名無しさん:2012/01/08(日) 12:28:46.13
普通は使わないと思う
どうなんだろ
sealされてるクラスを含むControlコレクションに対して何かやりたいときかなあ?
コントロールに合わせた特徴を列挙したいとか…
306デフォルトの名無しさん:2012/01/08(日) 12:31:47.48
System.Convert.GetTypeCode() 等のパターンとかみて、型 enum マップの基本を勉強しろとしかいいようがないな・・・
ほんと向上心がないんだね
307262:2012/01/08(日) 12:38:50.88
いろいろすみません。
用途は>>223のコードを弄ってコントロールへ文字列を送る部分を一まとめに書こうとしてます。
引数1をWindow.Forms.Controlにして
引数2をclass Form1で予め定義しておくコントロールの配列、
引数3に内容というふうにして
class hoge 76行目の所の_SetText("[・・・を
_setText(textBox,1,"文字列");とか、_setText(numericUpDown,1,"1234");とか・・・
308デフォルトの名無しさん:2012/01/08(日) 12:46:59.30
delegate…
309デフォルトの名無しさん:2012/01/08(日) 12:48:18.69
>>307
何の役に立つのか俺には想像できないが
コントロールの型で分岐したいだけだったら
if (control is TextBox) { テキストボックスの場合 } else if (control is NumericUpDown) { NumericUpDownの場合 } else …
がベスト。switchとかいらん。ディクショナリとデリゲート使ってもいいけど君には難しい。
310デフォルトの名無しさん:2012/01/08(日) 12:52:59.83
>>301-302
いや、マジでこんなことが必要になることは絶対ありえないとは言わない。
でも、継承をうまく使えずにこういうことが必要となるのは結構ありがち。
311デフォルトの名無しさん:2012/01/08(日) 12:53:04.38
そもそもなんでswitchって整数と文字列に限るの?
312デフォルトの名無しさん:2012/01/08(日) 12:53:54.63
…これだけのために継承書くかと言われると
ないわ
313デフォルトの名無しさん:2012/01/08(日) 12:54:35.17
普通にif使うより長くなったら意味無いだろうに・・・・
314デフォルトの名無しさん:2012/01/08(日) 12:55:28.81
>>311
==で判定できなくなるから
315デフォルトの名無しさん:2012/01/08(日) 12:58:26.24
分岐よりポリモーフィズム使えってのは、
サブクラスがぼこぼこ増える場合に分岐を書き足さなくていいからでしょう?
確かコード何とかって本ではそんな趣旨だったけど、
本来は増える見込みのないものまで全部書くんか?
316デフォルトの名無しさん:2012/01/08(日) 13:04:41.74
>>311
それ以外はコンパイル時定数じゃないしコンパイラが等値比較の挙動を知らないから
そういう場合は特に最適化できないのでifと変わらんからif使えということ
switchはあえて厳しい制限を設けることで「ここ最適化しやすいよ」とコンパイラに伝えるためにあるものなので
317デフォルトの名無しさん:2012/01/08(日) 13:05:48.30
switchに定数しか書けないのはテーブルジャンプを作りたいからだろう、C言語からそういう感じだ。
アトリビュートもアセンブリの事情で引数は定数とtypeof()演算子が使える。
恐らく、開発者であるヘジルスバーグも、型名スイッチについてはきっと考えた事は間違いないと思われる。
アトリビュートに許されてswitchに許されないとか、特に事情がないとすれば訳が分からない。
しかし、それでなお取りやめたんだろうな。
意図する所は、色々コードを組んでいれば見えてきて、バグの元やめとけって事なんだろうなと思った。
コード量が足りないと不便に感じたりする事もある。
しかし、ここの否定している奴の言い分は、論外の予感、論点ずれまくり。
318デフォルトの名無しさん:2012/01/08(日) 13:16:06.63
>>317
実行時の型情報(Typeオブジェクトが持ってるハンドルの値)はコンパイル時に決まるわけじゃなくて、
実行時に型がロードされるまでわからない値なんだよ。
属性は、リフレクションで属性を取得しようとしたときに
属性のコンストラクタが実行される簡単な仕組みなので、typeofが使えるのは何の不思議もない。
typeofの結果の値自体は実行するまでわからないの。
319デフォルトの名無しさん:2012/01/08(日) 13:17:54.10
>>318
それでも可能だが・・・、仮にそれを認めたとしても.NETには型の完全名ってヤツがあるんだ。
生半可な知識晒さない方がいいよ
320デフォルトの名無しさん:2012/01/08(日) 13:19:45.50
isでスイッチだと、親子関係のクラスがケースに書かれていたらどっちに分岐って問題出るだろ
321デフォルトの名無しさん:2012/01/08(日) 13:21:47.65
分岐とかそういった話の前に、実装を隠す為のデザインパターンについて多少でも勉強すればいいんだよ。
.Net のライブラリでも駆使されている、そこにswitchなんぞ適用したら・・・
そういう所に視点が及ばないから論外。
322デフォルトの名無しさん:2012/01/08(日) 13:24:20.04
何ていう名前のパターンさ
論外の前に具体性がないよ

デザパタに名前がついているのは会話で扱いやすくするためだそうだよ
今生かせや
323デフォルトの名無しさん:2012/01/08(日) 13:26:55.60
型の完全名は衝突しないんだっけ
324デフォルトの名無しさん:2012/01/08(日) 13:28:37.90
>>320
上の方にisで判定する時は子供からやれよって書いてあるよ
クソウゼェから同じ話題に対して同じこと何度も言わないで
325デフォルトの名無しさん:2012/01/08(日) 13:28:43.27
完全名はね、それ以前に型情報だけロードしてクラスをロードしないっていうメソッドが実はリフレクションにあるんだよ。
だから出来るの。関係無いの。
326デフォルトの名無しさん:2012/01/08(日) 13:34:39.58
型の完全名ってCLRのバージョン依存じゃなかったっけ
327デフォルトの名無しさん:2012/01/08(日) 13:36:55.91
脇道で花火してるようだけど、質問者への回答はとりあえず>>309でいいの?
異論なし?
328デフォルトの名無しさん:2012/01/08(日) 13:51:43.76
クラスの中のEqualsメソッドでやってきたクラスが自分と同じかを比較したい時はisを多く使うだろう。
クラスの外で、何クラスかを分類した時は as を使って null チェックが基本となるだろう。
沢山コード書け。
329デフォルトの名無しさん:2012/01/08(日) 13:55:07.56
逆だろ
Equalsでisを多く使ってる気がするのは値型が多いからで、as使えるならasの方が綺麗だし効率もいい
分岐先が多いとasは見辛くなる
330デフォルトの名無しさん:2012/01/08(日) 13:57:28.05
同値なのか同類なのか、そこが重要なんだよ、逆とか関係ない。
331デフォルトの名無しさん:2012/01/08(日) 14:03:29.62
>>330
参照型に対するisは (x as T) != null と同じだが
何を言ってるんだ?
332331:2012/01/08(日) 14:11:49.14
ああ x is T が x.GetType() == typeof(T) と同じだと勘違いしてるのか
継承を禁止してないならもちろん x.GetType() == typeof(T) が適切
333331:2012/01/08(日) 14:13:26.54
>>332はEqualsを実装する場合の話
申し訳ない
334デフォルトの名無しさん:2012/01/08(日) 14:17:30.18
コード書けってのもなんかなあ
お前らみたいな暇を持て余してる連中利用して楽に仕上げたいだろ?だろ?
335デフォルトの名無しさん:2012/01/08(日) 16:23:30.32
web上のデータを取得する方法は

WebClient wc = new WebClient();
wc.DownloadString(URL);

のようにWebClientクラスを使って一発で済ます方法の他に

HttpWebRequest
HttpWebResponse
StramReader sr = new StreamReader(st, enc);

と3つのクラスを順に使いながら取得する面倒な方法の二つに大別できるかと思います。

後者の面倒な方法の需要はどういうときにありますか?
前者のWebClientクラスだけで事足りるような気もするのですが・・・
336デフォルトの名無しさん:2012/01/08(日) 16:25:21.12
httpヘッダーいじれるかどうかどかもうちょっと踏み込んだことやる場合に使うかも

2chのdatを取得するような場合もWebClientじゃあ運営うるさそうだしなあw
337デフォルトの名無しさん:2012/01/08(日) 16:55:26.55
>>336
取得される側から見ても違いはあるんですか?
338デフォルトの名無しさん:2012/01/08(日) 17:01:32.10
>>337
あるよ
まあ差分取得推奨してるところなんて今時2chくらいだろうけどw

2chのdatを丸ごと取得するのと更新があった分だけ取得するのでは
チリも積もれば・・・だしねえ

あとは細かい転送ができることでレジュームダウンロードのようなこともできる
xxxバイトまで転送したのでこの続きから送ってとか
339デフォルトの名無しさん:2012/01/08(日) 17:18:55.54
WebClientはgzip標準で使ってない
gzip使わないとダウンロード量が2〜3倍ぐらいになったりするときもある

ひと手間かければ使えるけど
340デフォルトの名無しさん:2012/01/08(日) 17:21:02.43
あとはステータスコードの取り扱いがいやらしい
341デフォルトの名無しさん:2012/01/08(日) 17:28:25.28
>>280-287
型からenumへマッピングして、switch 文で効率よく分岐するのヘルパーライブラリに
簡単なオプティマイズを施して、線型検索O(n)からハッシュテーブルによるO(1)検索に作り替えてみた。
単純に最初の検索だけは線型検索で地道に検索して、結果をハッシュテーブルに放り込むだけです。
もし使ってみたい人がいたらどーぞ
入れ替えは ToEnumImp<TEnum> クラスの所だけです。
342デフォルトの名無しさん:2012/01/08(日) 17:28:49.14
 /// <summary>ToEnumの実装</summary>
 class ToEnumImp<TEnum>
 {
  class TypeAndEnum : IComparable<TypeAndEnum>
  {
   public readonly Type Type;
   public readonly TEnum Enum;
   public readonly int Order;
   public TypeAndEnum(Type t, TEnum e, int o) { Type = t; Enum = e; Order = o; }
   public int CompareTo(TypeAndEnum other) { return Order.CompareTo(other.Order); }
  }
  static readonly TypeAndEnum[] fields;
  static readonly Dictionary<Type, TEnum> typeToTEnum;
343デフォルトの名無しさん:2012/01/08(日) 17:29:07.28
  static ToEnumImp()
  {
   Type type = typeof(TEnum);
   if (!type.IsEnum) throw new Exception("TEnumがenum型ではない");
   List<TypeAndEnum> fieldInfoList = new List<TypeAndEnum>();
   System.Reflection.FieldInfo[] fieldInfoArray = type.GetFields(
    System.Reflection.BindingFlags.Static |
    System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic);
   foreach (var fieldInfo in fieldInfoArray)
   {
    object[] attributes = fieldInfo.GetCustomAttributes(typeof(TypeMapEnumAttribute), false);
    if (attributes.GetLength(0) == 0) continue;
    TypeMapEnumAttribute typeMapEnum = (TypeMapEnumAttribute)attributes[0];
    TEnum e = (TEnum)fieldInfo.GetValue(null);
    TypeAndEnum tae = new TypeAndEnum(typeMapEnum.Type, e, typeMapEnum.Order);
    fieldInfoList.Add(tae);
   }
   fieldInfoList.Sort(); // 比較優先順位でソートする
   fields = fieldInfoList.ToArray();
   typeToTEnum = new Dictionary<Type, TEnum>();
  }
344デフォルトの名無しさん:2012/01/08(日) 17:29:37.90
  public static bool ToEnum(object o, out TEnum id)
  {
   if (o != null)
   {
    Type type = o.GetType();
    if (typeToTEnum.TryGetValue(type, out id)) return true;
    for (int i = 0; i < fields.GetLength(0); ++i)
    {
     if (type == fields[i].Type || type.IsSubclassOf(fields[i].Type))
     {
      id = fields[i].Enum;
      typeToTEnum.Add(type, id);
      return true;
     }
    }
   }
   id = default(TEnum);
   return false;
  }
 }
345デフォルトの名無しさん:2012/01/08(日) 17:29:47.70
>>342
大量にコード貼るなら外部サイト使ってくれ
346デフォルトの名無しさん:2012/01/08(日) 17:44:22.49
人の話聞いてないみたいだからほっとけ
347デフォルトの名無しさん:2012/01/08(日) 17:46:45.82
>>341-344 のコードをさらにマルチスレッドにも対応しました。

ここを if (typeToTEnum.TryGetValue(type, out id)) return true;
これに lock(typeToTEnum) if (typeToTEnum.TryGetValue(type, out id)) return true;

ここを typeToTEnum.Add(type, id);
これに lock(typeToTEnum) typeToTEnum.Add(type, id);

入れ替えればOKです。他は問題ない筈。
348デフォルトの名無しさん:2012/01/08(日) 17:49:23.69
御前の頭に問題がある
349デフォルトの名無しさん:2012/01/08(日) 17:49:52.98
俺すげーになって場がしらけてることをわかってない
350デフォルトの名無しさん:2012/01/08(日) 17:50:00.16
>>348
ゴミ書き込みまくる奴よりは有意義だろw
351デフォルトの名無しさん:2012/01/08(日) 17:50:52.99
>>350
雑談をするところで長々とコードを貼るところではない
コードは外部に貼ってまとめておいてくれれば評価されたのに
それをしなかっただけで単なるうざい人
352デフォルトの名無しさん:2012/01/08(日) 17:53:20.61
コード貼るならサイト使えって1回目に言われた時点で理解しろよ
同じことを二度言うのは嫌いなんだ
353デフォルトの名無しさん:2012/01/08(日) 18:14:29.91
それ以前に
>>1

>このスレッドは
>「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です

誰かのくだらないコードを読まされるスレじゃないハズ
354デフォルトの名無しさん:2012/01/08(日) 18:17:51.98
>>353
そうですよ、質問者に対して意地悪な事ばかりする奴は徹底的に叩きます
あんたの事だよ
355デフォルトの名無しさん:2012/01/08(日) 18:20:02.95
コード張ってるアホは質問者に対してのアクションじゃないし
それ以前に誰も頼んでない
356デフォルトの名無しさん:2012/01/08(日) 18:20:27.67
久々に覗いたが、質問者に対する返答が酷過ぎるよ、なんだよこの気分滅入るような馬鹿は。
357デフォルトの名無しさん:2012/01/08(日) 18:21:09.66
>>356
どれが?
358デフォルトの名無しさん:2012/01/08(日) 18:26:59.25
ゆとり世代の学級崩壊みたいになってんな
好きな時に好きなこと書いてるだけ
ルール無視
359デフォルトの名無しさん:2012/01/08(日) 18:40:29.94
>>338
> あるよ
> まあ差分取得推奨してるところなんて今時2chくらいだろうけどw
>>399
> WebClientはgzip標準で使ってない

ああ!WebClientクラスだと差分取得ができないんですか!
なるほど、そういうときに
HttpWebRequest
HttpWebResponse
StramReader
を使う方式に利点が出てくるんですね。

もっとも差分で無圧縮のデータを取得するくらいなら最初から圧縮済みのデータを丸ごとDLしたほうが負荷は低い(ry
360デフォルトの名無しさん:2012/01/08(日) 18:44:38.61
伝送負荷と演算負荷は別だし
361デフォルトの名無しさん:2012/01/08(日) 19:11:34.57
震災前

     /::::::::::::::::::::::::::::::;;::ノ ヽ;::\
    /::::::::;;;;;;;;;,,,;;...-‐''"~    ヽ:;::l
     |:::::::::::|    岡田 異音    |ミ|
     |:::::::/     ,,,  ヽ,、   '|ミ|  
     '|:::::::l    '''""   ゙゙゙゙`   |ミ|
       |:::::|.  ,,r ‐、   ,, - 、  |/
     ,/⌒|  ノ ・ _), (. ・ `つ|
     | (   "''''"    |"'''''"  | 
      ヽ,,.        ヽ    |
       |       ^-^_,, -、   |   
         |    _,, --‐''~    ) |  マニフェストもう守れない。どうしよう・・・・ 
         'ヽ  (   ,r''''''‐-‐′ / 


震災後

     |:::::::::/            |ミ|
     |::::::::|   ,,,,,    ,,,,,   |ミ|
     |彡|.  '''"""''   ''"""'' |/
     /⌒|  -=・=‐,   =・=-  |
     | (    "''''"   | "''''"  |  
     .ヽ,,         ヽ    .|  キリッ
        |       ^-^    |
   .     |     ‐-===-   |   大震災が起こったのだからマニフェストの破綻も致し方ありません
         ,\.    "'''''''"   / 
朝鮮民主党
     おわり
362デフォルトの名無しさん:2012/01/08(日) 20:52:02.72
>>358
フラフラしないで席についてなさい
363デフォルトの名無しさん:2012/01/08(日) 21:03:10.32
差分取得ってなんすか?
なんか問題でもあるんすか?
364デフォルトの名無しさん:2012/01/08(日) 21:06:56.42
yieldってどうやって呼び出すんですか?
365デフォルトの名無しさん:2012/01/08(日) 21:07:51.52
まず靴を履いて外に出ます。
366デフォルトの名無しさん:2012/01/08(日) 21:17:30.70
コンパイラさんに感謝してMoveNextを余分だよボケが
367デフォルトの名無しさん:2012/01/08(日) 21:20:33.67
シュワッチ
368デフォルトの名無しさん:2012/01/08(日) 23:26:37.78
>>350
まあ確かに。
って言うか、コード貼るなって言ってる奴も結局「俺の言う事を聞け(ムキー)」でしかないなw
369デフォルトの名無しさん:2012/01/08(日) 23:30:11.49
確かにじゃねえよ寝ぼけてんのかクズが
370デフォルトの名無しさん:2012/01/09(月) 03:53:19.75
id表示してほしいな
371デフォルトの名無しさん:2012/01/09(月) 05:01:56.63
馬鹿の一つ覚えみたいにIDID…
372デフォルトの名無しさん:2012/01/09(月) 05:55:51.25
よっぽどIDが都合悪いらしいな
373デフォルトの名無しさん:2012/01/09(月) 06:04:20.18
流れをきるようで申し訳ないですが、
Windows(XP以降)のエクスプローラー上で選択状態にした複数のファイルの名前を、
右クリックメニューから起動するプログラムに渡したいのですが、どうやったら渡せるでしょうか。

とりあえず単純にレジストリキー登録で右クリックにプログラムを登録する方法では、
複数ファイルを選択してプログラムを起動してもargsに渡されるファイル名は一つだけでした。
(ちなみに右クリックの"送る"のところに登録すれば送るのシェル拡張?で複数ファイル名が渡されるようですが、"送る"に登録する以外の方法が知りたいです)

エクスプローラー上で選択状態になっているファイル名を取得する方法でもOKです。
どうかよろしくお願いします。
374デフォルトの名無しさん:2012/01/09(月) 08:20:08.39
(IDが)効いてる効いてるw
375デフォルトの名無しさん:2012/01/09(月) 08:33:28.03
>>373
レジストリのopen??commandの代わりにopen?DropTargetにする
IDropTargetを実装してCLSID適当に付けてCOMに登録すればいい
残念ながら君には不可能だが
376デフォルトの名無しさん:2012/01/09(月) 09:01:36.72
不可能とかいうなよ
>>373ならできるよ、きっとできる

Activating Your Handler Using the IDropTarget Interface
http://msdn.microsoft.com/en-us/library/windows/desktop/cc144171%28v=VS.85%29.aspx#activation_idroptarget

IDropTarget interface
http://msdn.microsoft.com/en-us/library/windows/desktop/ms679679%28v=vs.85%29.aspx

Creating a shell extension with C#
http://www.codeproject.com/KB/cs/dateparser.aspx

アセンブリ登録ツール (Regasm.exe)
http://msdn.microsoft.com/ja-jp/library/tzat5yw6%28v=vs.80%29.aspx

Publish.GacInstall Method
http://msdn.microsoft.com/ja-jp/library/system.enterpriseservices.internal.publish.gacinstall%28v=VS.100%29.aspx

これだけポインタを揃えたんだからできないはずはない、さあ作れ
377デフォルトの名無しさん:2012/01/09(月) 10:24:24.90
名無しでいいよ:2011/08/15(月) 23:20:15.53 ID:2fed4jwtO
FNS歌謡祭やHEY!×3の制作会社
株式会社CELL
東京都千代田区麹町2―2―4麹町YTビル

前バリ・REN4・野田らに政治献金した後藤組のフロント企業
メディアトゥエンテイワン
東京都千代田区麹町2―2―4麹町YTビル


378デフォルトの名無しさん:2012/01/09(月) 14:26:33.50
ポインタを揃えた?
379デフォルトの名無しさん:2012/01/09(月) 17:08:55.57
ラムダ内でfixedで得たポインタを以下のように使おうとすると、
fixed (int* p = a) {
  Action lambda = () => *p = 0;
}
このようなエラーが出ます。
「エラー CS1764: 匿名メソッド、ラムダ式、またはクエリ式の内部では、固定のローカルな 'p' は使用できません」
じゃあということで、以下のように別のポインタを作って間接的に使うと、
エラーにならず、目的通りに動いてくれました。
fixed (int* p = a) {
  int* pp = p;
  Action lambda = () => *pp = 0;
}
お聞きしたいことは、
・直接使うとエラーにする理由
・後者のように間接的に使う方法は問題ないか(もちろんラムダはfixed内のみで使う前提で)
です。お願いします。
380デフォルトの名無しさん:2012/01/09(月) 17:24:00.87
> ・直接使うとエラーにする理由
fixed抜けた後でlambdaを使うことが可能になるだろ
ListにAddされたりしたら追跡できん

> ・後者のように間接的に使う方法は問題ないか(もちろんラムダはfixed内のみで使う前提で)
fixedの中だけならまあいいんじゃない
仕事でそんなの書く奴がいたらアレだけどまさかな
381デフォルトの名無しさん:2012/01/09(月) 18:27:42.56
動画を右クリックしてプロパティを開いて
概要のところにタイトルとかカテゴリを記入することができますが
C#でそれをするにはどうすればいいですか?
読み込みしかできないっぽいんですが
382デフォルトの名無しさん:2012/01/09(月) 18:38:01.22
>>381
そのタイトルとかカテゴリーはなにか
可能性は二つ
1 .動画独自のデータ
2 NTFSの代替データストリーム

1だったら自分で何とかするしかない
2はc#からの利用は自前でcomのインターロップコード書くかdsofile.dllを使う
383デフォルトの名無しさん:2012/01/09(月) 18:41:14.79
NTFSサブストリームのことかねえ
安直にはdsofileライブラリを使う
根性があるならCreateFileとWriteFileでも行けるでしょう
生半可な根性では無理ですが
384デフォルトの名無しさん:2012/01/09(月) 18:41:46.13
おっと
385デフォルトの名無しさん:2012/01/09(月) 18:53:52.35
MP3のようなタグだから、WindowsAPI Codepack 使うのが一番お手軽
386デフォルトの名無しさん:2012/01/09(月) 19:00:56.44
VC#で使用できるガントチャート作成用コンポートネントで無償のものは無いでしょうか?
387デフォルトの名無しさん:2012/01/09(月) 19:13:21.92
>>382
>>383
ファイルの概要情報プロパティです
これがNTFSサブストリームなのかよくわかりませんが
テキストファイルも動画ファイルも同じように
タイトル、表題、作成者、カテゴリ、キーワード、コメント
という感じになっています

右クリックして直接編集する分には簡単にできたので
これを利用して動画などの情報(タグ)をコメント欄などに書き込み
管理するソフトを作ろうと思ったのですが、難しそうですね…

dsofileで試してみます
ありがとうございます
388デフォルトの名無しさん:2012/01/09(月) 19:16:44.39
>>386
自分で作る
389デフォルトの名無しさん:2012/01/09(月) 21:06:07.03
>>387
ファイルの種類ごとにメタデータのフォーマットが違うからねぇ
ここらへんはなんとかしてほしいわな

ある程度はWindows7からシェル経由でなんとかなるけど
390デフォルトの名無しさん:2012/01/09(月) 21:23:06.23
違うクラスで同じ処理を実行する場合同じコードをもう一つのクラスにコピペするのと
他方から1つのものを使うようにコードを書くのではどちらが普通の書き方ですか?
391デフォルトの名無しさん:2012/01/09(月) 21:27:46.14
コピペは論外だがケースバイケース
別のクラスにその処理を移動してそれを両方から使うほうが適切な場合もある
392デフォルトの名無しさん:2012/01/09(月) 21:28:37.19
大原則で同じコードを複数の場所に書かないと言うのがある

>修正するとき全部修正しないといけなくなって漏れがリスキーだから
393デフォルトの名無しさん:2012/01/09(月) 21:30:36.75
FormB書いててFormAの中にある処理と同じことをしたくなったからといって
FormBがFormAのstaticメソッドを呼んだりするのは不適切
そういうときはその処理専用のクラス作るかユーティリティクラスに入れるべき
394デフォルトの名無しさん:2012/01/09(月) 21:31:40.57
なるほど。一つお利口になりました^^
ありがと
395デフォルトの名無しさん:2012/01/09(月) 21:47:42.08
コピペ王に俺はなる!
396デフォルトの名無しさん:2012/01/09(月) 21:48:28.05
コピペするとコピペ罪で捕まりますわ
397デフォルトの名無しさん:2012/01/09(月) 21:51:37.03
コピペしたら警告してくれるIDEくだちゃい
398デフォルトの名無しさん:2012/01/09(月) 22:03:53.54
サイト 維持 のために アフィ の クリック お願いします!!
399デフォルトの名無しさん:2012/01/09(月) 22:20:15.98
アスペクト指向用のライブラリがあればコピペしなくてもいいのにな
既存の物は論外だ
400デフォルトの名無しさん:2012/01/09(月) 22:41:03.07
   _,,....,,_  _人人人人人人人人人人人人人人人_
-''":::::::::::::`''> 広 告 ク リ ッ ク し て い っ て ね! <
ヽ::::::::::::::::::::: ̄^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
 |::::::;ノ´ ̄\:::::::::::\_,. -‐ァ     __   _____   ______
 |::::ノ   ヽ、ヽr-r'"´  (.__    ,´ _,, '-´ ̄ ̄`-ゝ 、_ イ、
_,.!イ_  _,.ヘーァ'二ハ二ヽ、へ,_7   'r ´          ヽ、ン、
::::::rー''7コ-‐'"´    ;  ', `ヽ/`7 ,'==─-      -─==', i
r-'ァ'"´/  /! ハ  ハ  !  iヾ_ノ i イ iゝ、イ人レ/_ルヽイ i |
!イ´ ,' | /__,.!/ V 、!__ハ  ,' ,ゝ レリイi (ヒ_]     ヒ_ン ).| .|、i .||
`!  !/レi' (ヒ_]     ヒ_ン レ'i ノ   !Y!""  ,___,   "" 「 !ノ i |
,'  ノ   !'"    ,___,  "' i .レ'    L.',.   ヽ _ン    L」 ノ| .|
 (  ,ハ    ヽ _ン   人!      | ||ヽ、       ,イ| ||イ| /
,.ヘ,)、  )>,、 _____, ,.イ  ハ    レ ル` ー--─ ´ルレ レ´
401デフォルトの名無しさん:2012/01/09(月) 23:02:46.08
アスペ向き まで読んだ
402デフォルトの名無しさん:2012/01/09(月) 23:33:01.73
http://pastebin.com/fPrabTYP
↑これだめ?
403デフォルトの名無しさん:2012/01/09(月) 23:34:20.59
このスレでUbuntuでC#プログラミングしてる方っていますか?

居たらどのくらい実用可能か教えてください(NET.Framework的に)
404デフォルトの名無しさん:2012/01/09(月) 23:36:15.11
>>402
結局コントロール名を文字列リテラルで書いてたら意味ないでしょ
普通にswitch (control.Name)でいい
405デフォルトの名無しさん:2012/01/09(月) 23:51:01.50
>>402
以前switchでコントロールの判断させるロジックの質問した人だよね?

そういうことがしたかったの?
406デフォルトの名無しさん:2012/01/09(月) 23:58:10.10
>>404
こうやれば入力支援で大文字小文字とかの入力ミスがなくなるので良いと思ったのですが
それは Invoke(new SetTextCallback(SetText), cntName , msg );
の引数1もつかわずに名前を入れた共有変数1つだけを見ればいいということですか?

>>405
そうです
407デフォルトの名無しさん:2012/01/10(火) 00:02:00.16
>>406
もっと上の方で何をやってるからそういう仕組みが必要なのかわかればなあ・・・

名前だけじゃなくTagっていうobjectのあいてる領域があるから
そこに任意の数字を入れてやるとかいう手もあるし
場合によってはswitchで判断するコントロールを継承したクラスを作って
自分が使いやすいようにintを足してやるとかするとかすればいいんだが・・・
408デフォルトの名無しさん:2012/01/10(火) 00:05:05.32
ええい!生意気な乳首め!
409409:2012/01/10(火) 00:15:13.11
Silverlightプロジェクトを、Expression Blend4で作っています。
C#、XAMLはわからないので、デザインモードで作っています。
ブラウザで開き、ボタンを押したらYahooのページに移動するようにしたいです。

C#のコードの画面(.cs)は、以下のように記載されています。

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Diagnostics;

続く・・
410409:2012/01/10(火) 00:15:54.25
続き・・

namespace SilverlightApplication6
{
public partial class MainPage : UserControl
{
public MainPage()
{
// 変数を初期化するときに必要となります
InitializeComponent();
}
private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
{
// TODO: ここにイベント ハンドラーのコードを追加します。
            System.Diagnostics.Process.Start("http://www.yahoo.co.jp/");    
}}}

しかし、ビルドしようとすると、
「型または名前空間名'Process'は名前空間'System.Diagnotics'に存在しません。
アセンブリ参照が不足しています。」とエラーになります。
どうしたらよいでしょうか。よろしくお願い致します。
411デフォルトの名無しさん:2012/01/10(火) 00:16:05.77
>>402
率直に言って何がしたいのか全然わからない。
たぶん書いてる本人もそこを詰めてないから分かってないんだろうな。

まあ、手段(switch)が目的化してる倒錯だけは読み取れるけどw
412デフォルトの名無しさん:2012/01/10(火) 00:23:07.51
>>409
SilverlightにSystem.Diagnostics.Processは無い
COMで迂回してもいいが、SilverlightだったらそんなことしないでHtmlPage.Window.Navigateで一発
413412:2012/01/10(火) 00:33:07.90
補足
ブラウザで開くからCOMは無理だな
ブラウザ内のSilverlightはHtmlPage.Window.Eval("alert('Hello World')");
のようにJavaScriptを実行させることができるから、Navigateの動作が気に入らないならお好きなように
414409:2012/01/10(火) 00:39:04.98
>>412
ご教示ありがとうございます。
以下のように書けばよいのでしょうか?

private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
{
// TODO: ここにイベント ハンドラーのコードを追加します。
  HtmlPage.Window.Navigate("http://www.yahoo.co.jp/");             
}

上記でビルドしようとしたところ、
「名前'HtmlPage'は現在のコンテキスト内に存在しません。」のエラーになってしましました。
>>413で頂戴したコードに変えてみたのですが、同様のエラー文が出てきてしまいました。
書き方が違うのでしょうか。よろしくお願い致します。
415デフォルトの名無しさん:2012/01/10(火) 00:40:21.95
>>407
なんか難しそうな言葉が・・
>>411
>率直に言って何がしたいのか全然わからない。
正解と違うやり方をしようとしてるからなにをしようとしてるのか?って見えるんでしょうか?
delegateとかInvokeとか詳しく理解してればコントロールへのアクセスを直接実行できるのかと思いますが
そういうのが難しそうなので文字列を送るサンプルをもらったのでそれでなんとかしたいと思ってるだけです。
Framework1.1では別スレッドからフォームへのアクセスがエラーにならなかったのですが
4.0に移したらエラーになったので対策してます。
別スレッドの重い処理中でlistViewの上から順に処理しつつ、状況をlabelに表示したり、
フォームの操作の処理を並行したいのが目的です
そもそも知らない方法に出くわした時に知ってる方法でごまかすというのが間違いなんですかね・・
416デフォルトの名無しさん:2012/01/10(火) 00:41:56.42
>>414
using System.Windows.Browser;
をファイルの先頭に追加
さすがにC#の知識ゼロでSilverlightは無理があるからちゃんと入門書買ってきて出直せ
417デフォルトの名無しさん:2012/01/10(火) 00:43:38.25
1.1から4に移行する程間あけちゃう怠け癖が問題
418デフォルトの名無しさん:2012/01/10(火) 01:02:05.18
>>415
そんなのごちゃごちゃこねくり回すより
ちょっとそこらでControl.Invokeの使い方調べる方が早いと思うよ
419409:2012/01/10(火) 01:23:40.23
>>416
ありがとうございます!できました!

以前、Blendを使っての業務をしていたのでいけるかと思いましたが、
ちょっと業務の範囲をそれると、もう完全にお手上げですね・・

何はともあれ、本当に助かりました!
ありがとうございました!
420デフォルトの名無しさん:2012/01/10(火) 01:27:45.35
textBox1.Text = "abc";
を、↓にすればいいんだっけか?
textBox1.Invoke(new Action(()=>textBox1.Text = "abc"));
this.InvokeかtextBox1.Invokeかいまいち分からないけど。
>コントロールの基になるウィンドウ ハンドルを所有するスレッド上で、デリゲートを実行します。
て事だから、SendMessageで処理されるの?
421デフォルトの名無しさん:2012/01/10(火) 01:37:48.23
>>375
>>376
ツンデレか!w
要点をお教え頂きありがとうございました。
教えていただいた内容やアドレスからなんとか、GUID(CLSID)をつけてCOMに登録したり、
IDropTargetやIShellExecuteHookのC#での使用方法等がわかりました。
いろいろ調べていくうちにIContextMenuを実装するのが最終的にしたい事には
一番しっくり来るかなと思いましたのでそちらを更に調べていこうと思います〜。
422デフォルトの名無しさん:2012/01/10(火) 02:32:52.47
>>420
textBox1が乗ってるウィンドウと同じスレッドでnew Action(()=>textBox1.Text = "abc")を実行します
ってだけ
デリゲートの意味が分からないなら調べろ
SendMessageは一切関係ないから忘れとけ
423デフォルトの名無しさん:2012/01/10(火) 03:22:46.86
>>422
>SendMessageは一切関係ないから忘れとけ
SendかPostか分からないけどメッセージは飛んでるみたい。
msg=0xc20b hwnd=0x50408 wparam=0x0 lparam=0x0 result=0x0
(FormのWndProcをオーバーライドして確認)
別スレッドからthis.Invokeした場合だけでtextBox1.Invokeや同一スレッドから実行した場合は確認できず。

やっぱXXX.InvokeのXXXを何にするかはそのUIスレッドに属していれば何でもいいんだね。
424デフォルトの名無しさん:2012/01/10(火) 03:30:53.77
>>382
dsofileであっさりできました
ぐぐってみるとOffice Documentsじゃないとエラーが出るみたいな
ことが書いてある記事もあったけど
動画でもなんでもできました
ありがとうございました
425デフォルトの名無しさん:2012/01/10(火) 09:24:28.30
C++のdllを呼び出そうとしているのですが

void* hoge;
DeviceOpen(&hoge);

をC#で書こうとして
IntPtr hage;
[DllImport("dll名"]
public extern DeviceOpen(out IntPtr hage);

フォーム起動時の最初で
unsafe{
fixed(IntPtr* p = &hage){
DeviceOpen(out* p);
}
}

と、やっても何のエラーもい表示されずに以下の関数をすっとばしてフォームを表示してしまいます。
この場合、何がいけないのでしょうか?
ポインタ周りがわかっていないからだとは思うのですが、よろしくお願いします。
426デフォルトの名無しさん:2012/01/10(火) 09:28:25.56
ファイル側からexeを指定して起動された場合のイベントはどこで処理すればいいんでしょうか
427デフォルトの名無しさん:2012/01/10(火) 09:28:31.36
fixedとかいらん
DeviceOpenは返値無いのか?
428デフォルトの名無しさん:2012/01/10(火) 09:29:26.74
>>426
ファイル側ってのがよく分からんが、Mainメソッドじゃね
429デフォルトの名無しさん:2012/01/10(火) 09:30:04.76
馬鹿には無理
430425:2012/01/10(火) 09:34:59.83
>>427
最初はfixed無しでやっていたのですが、ポインタのアドレスを渡す為にunsafeとfixedにしてみました。
DeviceOpenは返値あるのですが、そこに値を返す前に関数が終了してしまいます。

private void test
{
int res = DeviceOpen(out hage);
Messagebox.Show("オープン");
}

でも、resに値が入る前にtest関数が終了してしまいました。
431デフォルトの名無しさん:2012/01/10(火) 09:37:47.64
民主党には朝鮮人など外国人のなりすまし、スパイが約90名在籍している

野田内閣は過半数が帰化人

野田はどうだろうか
韓国人から賄賂を貰い、韓国人の集いに出席している野田は
432デフォルトの名無しさん:2012/01/10(火) 09:39:59.70
Loadイベント辺りだと未処理の例外はスルーされたはずだけど
try-catchやってみたら
433 【東北電 84.7 %】 :2012/01/10(火) 09:42:56.06
C#でwebアプリ作る時に
Model
View
Controller の概念に分けて開発するようになってるのは何があるの?
SilverLightでいいの?
434425:2012/01/10(火) 10:02:29.67
>>432
try-catchをやってみたら、dllが見えて無いだけでした。
参照では追加できないdllだったので、直接フォルダに放り込んだところ読めて、ハンドルが取得出来ました。
ありがとうございます。

(その後のdllの読み込みでは、try-catchでもエラーが表示されずに関数が終了してしまいましたが・・・)
435デフォルトの名無しさん:2012/01/10(火) 10:03:17.91
>>428
Mainメゾットをヒントにググったら”コマンドライン引数”で解決できました
ありがとうございました
436デフォルトの名無しさん:2012/01/10(火) 15:41:32.47
リゾット
437デフォルトの名無しさん:2012/01/10(火) 15:54:21.36
メゾネット
438デフォルトの名無しさん:2012/01/10(火) 16:11:33.84
methodのこと?
439デフォルトの名無しさん:2012/01/10(火) 16:16:52.99
>>430
void*ならIntPtrで受けた方が良いよ
440デフォルトの名無しさん:2012/01/10(火) 20:49:13.85
それ以前にマネージメモリのポインタ渡して大丈夫なのかよ
441デフォルトの名無しさん:2012/01/10(火) 21:42:44.78
大丈夫にきまっとるやんけ

1回の呼び出しでポインタへのアクセスが終わるならいいけど
メモリを登録するような使い方をする場合はGCHandleが必要って制限はある
442デフォルトの名無しさん:2012/01/10(火) 23:01:09.82
>>433
ASP.NET MVC
443デフォルトの名無しさん:2012/01/11(水) 14:15:47.88
         __________       |  見ろよ!                 |
       ./::::::::::::::::::ノ、ヽ     |  民主党支持者がいるよ!w  |
      ./:::::::;;;-‐‐''"´  |:::|     \____  ________/
      |:::::::|   。   .|:::|        ノ´⌒ V        _____
      .|::::/ ⌒   ⌒ ヽ:|     γ⌒´      ヽ,     / _____)
       |:::| /・\ /・\||    // ""⌒⌒\  )    | /        ヽ
げひひw .|´  ⌒_ ヽ⌒  |  .   i /   ⌒   ⌒ヽ )     | 〉 ⌒   ⌒  |
      .| :::⌒(__人_)⌒|    !゙   /・\ /・\i/      |/. /・\ /・\ヽ
⊂ ̄ヽ___ ヽ   \__| ⊂ ̄ヽ_ |  :::⌒(__人_)⌒⊂ ̄ヽ_ | ::::⌒(__人_)⌒:: |
  <_ノ_    ヽ_    _/ <_ノ_. \     \__|  / .<_ノ_ \ ´ \__|  ノ  い〜ひっひw
   
444デフォルトの名無しさん:2012/01/11(水) 21:46:58.32
フォームアプリのボタンをGIFアニメにすることはできまつか?
445デフォルトの名無しさん:2012/01/11(水) 21:52:25.61
ディレクトリを列挙する際にapp_dataなどのディレクトリを巻き込んでしまうとエラーが出てしまいます
こういった特別なディレクトリのみを回避する方法はないでしょうか
446デフォルトの名無しさん:2012/01/11(水) 22:19:54.71

800 自分:名無し募集中。。。[] 投稿日:2012/01/08(日) 22:00:50.04 0
AKBブーム捏造の裏

サウンドスキャンの売り上げでさえほとんどが業者の自社買い他社買いで
資金洗浄した金額がオリコンの枚数×CDの価格って感じかね
http://livedoor.blogimg.jp/dqnplus/imgs/f/f/fff69a26.jpg

447デフォルトの名無しさん:2012/01/11(水) 22:32:17.33
K-POOPが何だって?w
448デフォルトの名無しさん:2012/01/11(水) 22:36:40.83
>>444
これをボタンのペイントハンドラでやりゃいい
http://dobon.net/vb/dotnet/graphics/animegif.html

>>445
無い
449デフォルトの名無しさん:2012/01/12(木) 01:32:19.55
独習C#第三版なんとか通読。分かりやすかったのではないかと思います。ありがとうございました。

一点だけ、結構さくさく読み進められてた(つもり)でしたが、最終章(16章)だけ中々頭に入りませんでした…
ぱっと見は、本を通じて殆ど無い図示なんかが出てきて綺麗なのですが。

テイストが違うので、章立てで原著か、訳者の方が違うのかな?と思ったら、
日本語版で加筆されたらしい章でした。
元々ちょっと複雑な内容なのでそれまでなのか、ハーバート・シルト先生の説明が
翻訳挟むのをものともせず偉大なのか…
450デフォルトの名無しさん:2012/01/12(木) 02:02:12.34
>>445
例外キャッチしてスキップするでいいんじゃないかな
451デフォルトの名無しさん:2012/01/12(木) 02:38:34.79
ルンルン♪ランラン♪
452デフォルトの名無しさん:2012/01/12(木) 08:45:57.80
教えてください。あるPanelに複数のLabelなどが配置されていて、
それらはDockプロパティでFillされておりPanel自体は背面に隠れて画面から全く見え無い状態になっているとして、
マウスオーバーされた際に、Panelの外枠の色を変え、マウスリーブされた際に色を元に戻すような処理を考えてます。

しかしながら、Panelが背面に隠れているため、マウスオーバーイベントが走りません。
そこで、それぞれのLabelでマウスオーバーとマウスリーブイベントが発生した時に、Panelのマウスリーブ、マウスオーバーイベントを発生させるようにしたのですが、
LabelからLabelに移動した際に、移動元のLabelでマウスリーブイベントが流れた後に移動先のマウスエンターのイベントが流れるため、一瞬、色が戻ってしまいます。
ですので、なんとかPanelのマウスオーバー、マウスリーブイベントで、マウスがコントロール上にあるかどうか判断したいのですが、何か良い方法はないでしょうか?
453デフォルトの名無しさん:2012/01/12(木) 08:49:18.34
>>449
そうなんだよなw
最終章だけ妙に分かり辛い
454デフォルトの名無しさん:2012/01/12(木) 11:49:20.93
>>452
長いな
動画にしてうpして!
455デフォルトの名無しさん:2012/01/12(木) 13:27:47.57
C#で書かれたMapReduce分散処理システムはありませんか?
Mono for Androidで動かしたいのでピュアマネージドなものを探しています。
456デフォルトの名無しさん:2012/01/12(木) 15:18:44.54
CLEditorのようなWYSIWYGエディタコントロールって
WindowsForm用は無いでしょうか?
457デフォルトの名無しさん:2012/01/12(木) 16:07:39.51


2chやニコニコ動画に民主党から反日工作費が流れていることが知られるようになってきた。
民主党が用意した資金で工作員が2chを荒らしていることもだんだんと知られるようになってきた
458デフォルトの名無しさん:2012/01/12(木) 16:53:30.65
>>457
もう次の衆院選は維新の会に入れるしかないな。
459デフォルトの名無しさん:2012/01/12(木) 16:58:44.51
また看板だけ見て票入れる奴がでてきたよ
全然懲りてねーのな
維新の会がだめっていってんじゃないぞ
人見ろ、人
460デフォルトの名無しさん:2012/01/12(木) 17:38:27.65
シルト先生は旧世代の人
オブジェクト絡んだプログラムはへたくそ

わかりやすく感じるかもしれないけど
あまりいい本じゃない
461デフォルトの名無しさん:2012/01/12(木) 19:41:18.88
何らかのエラーが発生したとき、メソッドにエラーに該当する数字をreturnさせるべきか、
自前の例外を定義してそいつをthrowすべきかで結構悩むことがある。

お手軽さ第一なら return -1 とかにするのが一番楽なんだけどね。
462デフォルトの名無しさん:2012/01/12(木) 19:50:14.80
発想が逆だろ
例外が一番簡単に高度なフロー制御が出来て楽だが、実行コストが段違いに大きいのでやむを得ない場合にしか使わない
通常は列挙型他のカスタム型や、boolでチマチマ値を返す
intやstringで管理するのは茨の道で特殊な変態以外には勧められない
463デフォルトの名無しさん:2012/01/12(木) 19:55:14.41
例外の実行コストなんてどうでもいい。例外なんだから。
コスト気にしないといけないようなもんはそもそもエラーではない。
464デフォルトの名無しさん:2012/01/12(木) 20:54:31.92
>461
必ず例外を投げる必用があるのは、呼び出し側がエラーを想定してない場合は
プログラムの実行を強制停止したい(それ以上処理を継続されては困る)場合だけ。

それ以外はお好みでいいよ。
465デフォルトの名無しさん:2012/01/12(木) 21:14:35.62
どこかにも例外を制御に使うなって書いてあったな
MSDNにもあったような
466デフォルトの名無しさん:2012/01/12(木) 21:18:31.69
例外は制御に使うもんでしょ
普通に想定される通常の制御に使うなってこと
467デフォルトの名無しさん:2012/01/12(木) 21:21:08.55
例外は制御に使われてるな
web系のアクセスに使われるやつで
httpのサーバーが返すエラーを例外でひろった記憶が
468デフォルトの名無しさん:2012/01/12(木) 21:22:40.61
どの言語とは言わないが、イテレータの終端で例外を報告する奴は何であんなデザインなんだろう
469デフォルトの名無しさん:2012/01/12(木) 21:24:03.69
>>467
やってみないと成功するかどうかわからないし十分重い処理だから例外を使うのが適切
470デフォルトの名無しさん:2012/01/12(木) 21:27:16.11
C#がC++を抜いて3位に - 1月プログラミング言語人気
http://news.mynavi.jp/news/2012/01/12/058/
471デフォルトの名無しさん:2012/01/12(木) 21:33:20.52
Webbrowserでクッキーが残ります、削除方法教えてください
472デフォルトの名無しさん:2012/01/12(木) 21:41:48.90
>>468
Rubyのイテレータは内部イテレータが基本だから、(外部イテレータもあるが)
利用側で勝手に操作できるC#のイテレータとは事情がだいぶ違う
C#風に書くと
list.ForEach(x => { if (cond1(x)) break; else if (cond2(x)) continue; else hoge(x); });
みたいな制御ができなきゃいけないので
473デフォルトの名無しさん:2012/01/12(木) 21:43:35.11
>>471
いやです
474デフォルトの名無しさん:2012/01/12(木) 22:14:34.75
最近は何か調べ物をする時には「C# ○○」ではなく、「WPF ○○」と検索することが多くなった・・・
475デフォルトの名無しさん:2012/01/12(木) 22:43:43.25
クラスの特定のメンバだけ遅延評価って出来る?
アクセスするときになって初めて値を代入する
476デフォルトの名無しさん:2012/01/12(木) 22:51:51.59
普通は「遅延初期化」と呼ぶんじゃないかな
477デフォルトの名無しさん:2012/01/12(木) 22:54:23.28
フィールドじゃなくてプロパティのゲッタで初期化すればいい
478デフォルトの名無しさん:2012/01/12(木) 22:58:56.56
クラスの変数にアクセスするときに、変数自身をpublicにしないで、
プロパティを経由するのが推奨される理由ってなんですか?
479デフォルトの名無しさん:2012/01/12(木) 23:00:34.14
オーバーライドできるから
480デフォルトの名無しさん:2012/01/12(木) 23:01:28.58
>>478
後で実装を変更するため
こういう話だと「バインディングするため」とかいうのが必ず出てくるんだけど
それは逆で、普通はプロパティを使うからプロパティしかバインディングできないので理由ではない
481デフォルトの名無しさん:2012/01/12(木) 23:03:34.64
遅延初期化みたいなこともできるし
実用的かはともかくアクセスしてきたスレッドによって返す値を変えたり柔軟
482デフォルトの名無しさん:2012/01/12(木) 23:09:46.19
なるほどわかりました。ありがとうございます。
483デフォルトの名無しさん:2012/01/12(木) 23:12:15.21
想定されているかどうかの判断はどうやってるの?
例えばFileStreamでFileMode.Openのときに無効なパスを入れると
FileNotFoundExceptionが発生するけど、
ファイルが無い事態って普通に想定できない?
484デフォルトの名無しさん:2012/01/12(木) 23:14:13.26
>>483
意味がわからん

ファイルIOもパソコンの動作の中でみれば低速な部類になるので
>>467>>469のような扱いなのかも
485デフォルトの名無しさん:2012/01/12(木) 23:15:50.25
そう思うならFile.Existsでチェックすればいい
でもその直後にファイルが無くなるかもしれないし、ファイルがあっても開けないこともある
それは想定外だから例外は必要
486483:2012/01/12(木) 23:22:51.66
>>485
想定できるとするなら(利用者が対策とるのを期待するなら)nullとかエラーコード返す実装でもいいよね。
ファイルが突然無くなることも、理由があって開けないことも想定できるといえば想定できる。
現に>>485初め多くの人が挙動を知ってる。
そういう意味ではない?
487デフォルトの名無しさん:2012/01/12(木) 23:40:06.16
>>475
C#4.0 からの Lazy<T> ではダメ ?
488デフォルトの名無しさん:2012/01/12(木) 23:44:59.31
極論が始まったら話は打ち切った方がよい
○か×か
489デフォルトの名無しさん:2012/01/12(木) 23:51:58.41
>>486
・やってみないとわからない
・十分重い処理である
・失敗要因は複数あり、呼び出す側が区別できた方が有用と思われる
あえて例外を使わない理由がない
490デフォルトの名無しさん:2012/01/12(木) 23:52:55.05
>>486
File.Openで言うならnull以外返せないから原因を伝えられない
491デフォルトの名無しさん:2012/01/12(木) 23:59:08.87
>>488
違うよ。例外を使うべきか否か(想定できるかできないか)の基準を聞きたかったの。

>>489
なるほど。
492デフォルトの名無しさん:2012/01/12(木) 23:59:22.88
エラーコードは見落とすとプログラムが意図せずに走り続けてしまったり
493デフォルトの名無しさん:2012/01/13(金) 00:09:23.03
>>491
なるほどってw
例外の目的は異常が起こったときにプログラムを強制終了させることだって言ってるじゃん。
それとも違うと思うなら言ってみ?

>>489はちょっと今の論点からはずれてると思うよ。
494デフォルトの名無しさん:2012/01/13(金) 00:12:23.58
>>493
え、それって手段じゃないの?
目的ならcatchして処理を続行できる今の仕組みはおかしいでしょう。
495デフォルトの名無しさん:2012/01/13(金) 00:19:00.30
だから、メソッドの呼び出し元が例外を想定していなかった場合(catchして
適切な処理をしなかった場合)、プログラムを強制終了させることが例外を投げる目的ですよ。

>>492が言ってる通り、エラーコード方式だと、エラーコードを適切に処理しなかった場合、
開いてないはずのストリームやデバイスを読み書きすることになりかねないでしょ
496デフォルトの名無しさん:2012/01/13(金) 00:22:54.12
例外の目的は呼び出し階層をすっ飛ばしてエラー処理のある個所にジャンプすることだよ
戻り値だと中間のコールスタック全部で適切な処理をしないとエラー情報が伝播しなくなるからね
497デフォルトの名無しさん:2012/01/13(金) 00:35:05.37
想定してなくても強制終了はないわ
498デフォルトの名無しさん:2012/01/13(金) 00:36:23.96
File.Copyでコピーできないファイルがあります。
ほかのプロセスで開きっぱなしなので当然なのかもしれませんが。
どうにかコピーする方法はないですか?
ぐぐるとVolume Shadow Copy Serviceというのを使うとコピーできる
らしいのですが、使い方がわかりませんでした。
499デフォルトの名無しさん:2012/01/13(金) 00:39:46.27
そうだね
復旧できない階層抜けるために新しい制御構造やエラーenum作って
戻り値の連鎖させるのって馬鹿らしい
500デフォルトの名無しさん:2012/01/13(金) 01:51:55.76
>>498
エクセルなんだろうなぁ・・・w
読み取り専用で読んで、ファイルに書き込めばいいのじゃないの?
501デフォルトの名無しさん:2012/01/13(金) 09:30:04.00
502デフォルトの名無しさん:2012/01/13(金) 10:52:20.13
WebBrowserを使ったプログラムで
Navigateしてからwebborwser.Document.Body.GetElementsByTagName("A");
で要素探す、ということを繰り返していると

CallbackOnCollectedDelegateが検出されました。
コールバックが、型XXXX.Form1+D_MyWndProc::Invokeのガーベージコレクションされたデリゲートで行われました。
これは、アプリケーションのクラッシュ、破損、およびデータの損失を発生させる可能性があります。
デリゲートをアンマネージコードに渡すとき、デリゲートは2度と呼び出されないことが確実に成るまで
マネージアプリケーションによって維持されなければなりません。

とでて終わってしまいます

これを回避するにはどうすればいいですか?
503デフォルトの名無しさん:2012/01/13(金) 11:00:27.77
>>502
どんな内容のコードかわからないけど
普通の使い方してたらそんなエラー出ない

それと
WebBrowser.Document.Links使えばいいんじゃないの?
504デフォルトの名無しさん:2012/01/13(金) 11:01:57.00
初心者ほどWebBrowserを使いたがる法則
505デフォルトの名無しさん:2012/01/13(金) 11:05:08.25
上級者でも業務でも使うだろ
506デフォルトの名無しさん:2012/01/13(金) 11:15:05.85
それはどうかな
507デフォルトの名無しさん:2012/01/13(金) 12:05:36.85
SHDocVw参照に追加して自前でCOMオブジェクトを管理したほうが安全な場合もあるけど面倒くさい
508デフォルトの名無しさん:2012/01/13(金) 12:08:48.90

民主党には朝鮮人など外国人のなりすまし、スパイが約90名在籍している

野田内閣は過半数が帰化人

野田はどうだろうか
韓国人から賄賂を貰い、韓国人の集いに出席している野田は
509デフォルトの名無しさん:2012/01/13(金) 12:08:51.97
>要素探す、ということを繰り返していると
どのくらい繰り返したんだろう

GetElementsByTagNameで抽出した後どのくらい処理してるかにもよるしなあ
510デフォルトの名無しさん:2012/01/13(金) 12:26:43.42
>>504
いちいち茶々いれんと気がすまんのか?
511デフォルトの名無しさん:2012/01/13(金) 12:30:32.78
うん
512デフォルトの名無しさん:2012/01/13(金) 12:52:45.24
朝鮮人みたいなやつだな
513デフォルトの名無しさん:2012/01/13(金) 12:59:56.51
みたいというか国籍は韓国ですが
514デフォルトの名無しさん:2012/01/13(金) 13:35:19.05
ネトウヨと韓国人お断り
515デフォルトの名無しさん:2012/01/13(金) 16:07:05.75
>みたいというか国籍は韓国ですが

おい
























おい
516デフォルトの名無しさん:2012/01/13(金) 16:07:16.76
教えてください!
axWebBrowser上でWEBページを表示させて、その中にあるボタンをクリックし、
画面を遷移させる方法で悩んでます。

フォームボタンにはvalue値が設定されているので、それを

for (i=0;i<= buttons.length;i++)
{
IHTMLInputElement subm = (IHTMLInputElement)buttons.item(i, 0);
if (subm.value == "hogehoge")

というFor文で探りあてるところまではできましたが、
その後のクリックを
((IHTMLElement)subm).click();
〜読み込み待機処理〜

としても、axWebBrowser上の画面が遷移しません。
クリックの仕方が悪いのか、何が原因なのか……

どなたか教えてくださいませ!
517デフォルトの名無しさん:2012/01/13(金) 16:13:13.59
ボタンのクリックは
element.InvokeMember("click");
だよ。
518デフォルトの名無しさん:2012/01/13(金) 16:32:30.14
>>517

通常のWebBrowserコンポートネントだとそれでいけるのですが、
axWebBrowserの場合、IHTMLDocument型でWebページの情報を取得し、
その中のIHTMLInputElementでボタンを探すことになります。
IHTMLInputElementIHTMLInputElementメンバにはInvokeMemberがないため、
>>516のような方法でクリックさせてみています。

最後に何かにキャストすればInvokeMemberが使えるようになるのでしょうか?
519デフォルトの名無しさん:2012/01/13(金) 16:53:41.10
>>516です。

自己解決しました。
お騒がせしました・・・
520デフォルトの名無しさん:2012/01/13(金) 18:55:58.50
C#でクラスを勉強してまして、こういうクラスを作って

class ClassHoge
{
   private string _name;
   private string[] _subject = new string[5];

   public string name
   {
      get { return _name; }
      set { _name = value; }
   }
public string this[int index]
   {
      get { return _subject[index]; }
      set { _subject[index] = value; }
   }
}

こうはできたのですが
ClassHoge[] Hoge = new ClassHoge[10];
Hoge[0] = new ClassHoge();
classHoge[0].name = "名前";
classHoge[0][0] = "配列1";

最後の部分をこんな風したいのです
classHoge[0].subject[0] = "配列1";

何か方法ないでしょうか
521デフォルトの名無しさん:2012/01/13(金) 19:00:12.78
無いですな
残念
522デフォルトの名無しさん:2012/01/13(金) 19:01:36.69
えっ?
523デフォルトの名無しさん:2012/01/13(金) 19:03:06.37
public IList<string> Subject[int index]
   {
      get { return _subject; }
   }
524523:2012/01/13(金) 19:03:46.31
ごめん
インデクサ要らない
525デフォルトの名無しさん:2012/01/13(金) 19:05:06.31
class ClassHoge
{
 public string subject[] = new string[1];
public string name;
}

ClassHoge[] Hoge = new ClassHoge[10];
classHoge[0].name = "名前";
classHoge[0].subject[0] = "配列1";
526デフォルトの名無しさん:2012/01/13(金) 19:11:50.62
>>523
すみませんインデクサも勉強中で何が不要なのかすらわかっていません
そこら辺をもっと勉強します。ありがとうございました

>>525
publicなら動きました!
どこ見てもprivateでしか記述してないので、publicにすべきではないのかと思ってました
大変助かりました。ありがとうございました
527デフォルトの名無しさん:2012/01/13(金) 19:12:43.79
いや配列をpublicにすべきでないというのは合ってる
フィールドにすべきでもない
528デフォルトの名無しさん:2012/01/13(金) 19:15:20.15
自分でしか使わないならpublicでもいいよ
529デフォルトの名無しさん:2012/01/13(金) 19:54:03.14
string line = "hoge<>aiueo<>test";
string[] delimiter = { "<>" };
string[] result = line.Split(delimiter, StringSplitOptions.None);

lineを<>で区切りたいのですが、1度しか使われることのない変数、2行目が無駄に感じられます。
C#ではline.Split({"<>"}, StringSplitOptions.None);のように匿名配列を使うことは出来ないのでしょうか?
//    ↑は出来ませんでした。
530デフォルトの名無しさん:2012/01/13(金) 19:56:57.17
string[] result = line.Split(new string[]{ "<>" }, StringSplitOptions.None);
ではだめ?
531529:2012/01/13(金) 19:57:45.75
>>529
string[] result = line.Split(new string[]{"<>"}, StringSplitOptions.None);

>>530
レスありがとうございます。なるほど、new string[]をつければ良いのですね。
たしかに付けなければ型が分からない。
宣言時の初期化でそれが不要なのは糖衣構文だったわけですか。
532デフォルトの名無しさん:2012/01/13(金) 20:40:19.23
さすがにネタか自演臭い
533デフォルトの名無しさん:2012/01/13(金) 21:33:15.54
delegate void SetFocusDelegate();

void SetFocus()
{
textBox2.Focus();
}

Invoke(new SetFocusDelegate(SetFocus));

上の3箇所の記述で別スレッドからwinformのtextBoxにフォーカスを与えるようにしているのですが、
listViewのチェックボックスn番目にチェックをつけるにはInvokeのところの行はどう書いたら良いでしょうか?

ほか2箇所は↓でOKですか?
delegate void checkDelegate(int num);
void SetCheck(int num)
{
listView1.Items[num].Checked = true;
}
534デフォルトの名無しさん:2012/01/13(金) 21:40:56.19
>>533
とりあえずISynchronizeInvokeの使い方をググって調べて。
Controlはこれを実装してる。
535デフォルトの名無しさん:2012/01/13(金) 21:44:03.34
追加。
あと、Action<T>とか汎用のデリゲートもこの際覚えた方がいいよ。
536デフォルトの名無しさん:2012/01/13(金) 21:48:09.26
汎用デリゲート使うかどうかは好きにすればいいけどデリゲート名にDelegate付けるのやめろ
規約違反だ
537デフォルトの名無しさん:2012/01/13(金) 21:58:35.51
どこの規約よw
それこそ大きなお世話だわ。

っていうか、デリゲートって適切な命名がしにくい場合が多いから、
とりあえず○○Delegeteにしとくのは悪くない選択だと思うが
538デフォルトの名無しさん:2012/01/13(金) 22:02:19.34
まあMSの推奨だわな
hogeCallbackとかhageDelegateはやめろと言ってる
539デフォルトの名無しさん:2012/01/13(金) 22:05:36.67
ニコニコ動画みたいに画面にコメントを流したいんですけど
コメントの長さによってコメントの流れる速さが違いますが
その計算式教えてください。
540デフォルトの名無しさん:2012/01/13(金) 22:05:55.24
>>537
MSの解析ツールで警告が出る
http://msdn.microsoft.com/ja-jp/library/ms182247.aspx
541デフォルトの名無しさん:2012/01/13(金) 22:08:01.96
>>539
陸橋を渡る電車の時間を求める的な問題でも解いてろ厨房
542デフォルトの名無しさん:2012/01/13(金) 22:12:05.67
>型を以前のバージョンと区別するための Ex または類似のサフィックス
あ、拡張版だよってコレふんだんに使っちゃってるわw 駄目なのか
543デフォルトの名無しさん:2012/01/13(金) 22:20:26.44
>>540
それってあくまでクラスライブラリを作る時の規約違反をチェックするツールだよね。
544デフォルトの名無しさん:2012/01/13(金) 22:23:52.18
VSのコード解析やFxCopは別にクラスライブラリに限らず
一般にコードの品質を高めるためのものと位置付けられてるが
545デフォルトの名無しさん:2012/01/13(金) 22:24:52.64
例えば長さ200pxの文字列が幅1000pxのウィンドウを4秒で出現から
消えるまでに10ミリ秒単位で移動する量は何ピクセルになるでしょうか?
546デフォルトの名無しさん:2012/01/13(金) 22:25:03.66
>あくまでクラスライブラリを作る時の規約違反をチェックするツール

んなわけねえだろうがよ
547デフォルトの名無しさん:2012/01/13(金) 22:28:03.53
あ、そうか足せばいいのか。
1000 + 200 / (4000 / 10)
548デフォルトの名無しさん:2012/01/13(金) 22:28:13.18
>>546
困った人だな。
http://msdn.microsoft.com/ja-jp/library/ee1hzekz.aspx

↑の「デザイン上の警告」の項目に何と書いてありますか。
549デフォルトの名無しさん:2012/01/13(金) 22:29:29.38
FxCopを「クラスライブラリを作る時の規約違反をチェックするツール」って言ったことを指摘してるんじゃねえの
550デフォルトの名無しさん:2012/01/13(金) 22:30:41.07
何とかいてありますか(棒)
551デフォルトの名無しさん:2012/01/13(金) 22:30:55.68
支援 .NET Framework 設計方針所指定之正確程式庫設計的警告。
と書いてあります。
552デフォルトの名無しさん:2012/01/13(金) 22:31:09.49
VSのコード解析やFxCopはクラスライブラリに限らずコードの品質を高めるためのもの。
で、そのルールは「クラスライブラリ開発のデザインガイドライン」をベースにしてるってこと。
ガイドラインそのものとはまた別の話なんだよ。
553デフォルトの名無しさん:2012/01/13(金) 22:32:21.22
ライブラリって程式庫なのか。へえ。
554デフォルトの名無しさん:2012/01/13(金) 22:33:18.84
あ、「デザイン上の警告」じゃなくて「名前付けの警告」の方かw

いずれにしても>>548の項のトップに
The Managed Code Analysis tool provides warnings that indicate rule violations in managed code libraries.

とはっきり書いてあるけどさ。
555デフォルトの名無しさん:2012/01/13(金) 22:35:33.89
そうなんだ
556デフォルトの名無しさん:2012/01/13(金) 22:41:36.24
まあMS様公認かどうかより、そのルールが合理的かどうかの方を問題にした方がいいと思うんだけど、
デリゲート名をDelegateでサフィックスするな、っていうのはちょっと筋が悪くない?

Attributeはちょっと特別かも知れんけど、EventArgsやExceptionとどう違うって言うんだろうか。
557デフォルトの名無しさん:2012/01/13(金) 22:43:11.07
Actionぐぐってここまでできますた
続きおしえて
public void changeCheckState(int num, bool b)
{
listView1.Items[num].Checked = b;
}

Action<int, bool> listViewTest;
listViewTest = changeCheckState;
558デフォルトの名無しさん:2012/01/13(金) 22:43:52.31
ヘンにカタカナ語が氾濫してる日本語ドキュメント読むより
台湾と英語の両併記の方がスッキリ読めるよ (慣れたら

名前付けの警告 .NET Framework デザイン ガイドラインの名前付け規則の順守をサポートする警告です。

命名警告 支援遵守 .NET Framework 設計方針之命名慣例的警告。

ほらスッキリ
559デフォルトの名無しさん:2012/01/13(金) 22:45:31.25
>>557
ISynchronizeInvokeもググってねって言ってるじゃん。
コピペコードでやっつけても身にならんよ
560デフォルトの名無しさん:2012/01/13(金) 22:46:23.15
そ、遵守
561デフォルトの名無しさん:2012/01/13(金) 22:46:23.81
>>556
だから以前はCallbackサフィックスを付けろというルールがあった(削除されたけど)
Delegateだとイベントハンドラもデリゲートだし、
デリゲートはDelegateの派生型ではあるけど、どっちかというとクラスやインターフェイスと同格の
型の種別の名前としての意味合いが強いし
562デフォルトの名無しさん:2012/01/13(金) 22:49:13.32
>>561
なるほどEventArgsやExceptionをあげたのは不適切だったかも。

確かにサフィックスなしで命名できればそれに越したことはないけど、
>>537にも書いたがデリゲートの場合はそれでは命名が難しい場合があると思うんだけどさ。
563デフォルトの名無しさん:2012/01/13(金) 22:51:52.31
デリゲートは型の種別なんだから、クラスに〜Classって付けるようなもんだぞ
何か付けて区別するならインターフェイスにIプレフィックス付けるのと同じように
Dプレフィックス付けるほうが一貫してる
564デフォルトの名無しさん:2012/01/13(金) 22:55:34.01
だいたいデリゲートかどうかなんて使われ方で一目瞭然なんだし
イベントハンドラでも汎用デリゲートでもないデリゲートなんてそう多く使われるものでもない。
それを問題にするなら例えば構造体にプレフィックスやサフィックス付ける方が重要だと思うが。
565デフォルトの名無しさん:2012/01/13(金) 22:55:43.91
しばらくデリケートな話題が続きます
566デフォルトの名無しさん:2012/01/13(金) 22:56:57.36
下痢デートとか
567デフォルトの名無しさん:2012/01/13(金) 23:01:37.03
なんか話がかみ合わない気がするのは、たぶん特に3.0以降自前でデリゲート定義する
必要性があまりないからだろうな。

たしかにその意味ではどうでもいい話だ。
568デフォルトの名無しさん:2012/01/13(金) 23:04:43.28
569デフォルトの名無しさん:2012/01/13(金) 23:07:00.83
>>559
ぐぐった
ISynchronizeInvoke cnt ;
cnt = listView1;
cnt.BeginInvoke(listViewTest,new object[]{i,true});
↑でいいですか?
570デフォルトの名無しさん:2012/01/13(金) 23:55:34.66
野田改造内閣に早速疑惑浮上

@aritayoshifu 有田芳生
捜査当局が内偵を続けている農水疑惑。詳細な怪文書まで出回っている。3億円の
行方はどこに?

@minorucchu ジャーナリスト 田中稔
野田改造内閣を揺るがす、農水省3億円スキャンダルの怪文書。二人の議員名が浮上。
34分前 webから
https://twitter.com/#!/minorucchu/status/157687110562881537

鹿野と筒井らしい
自公は問責も視野に調査開始だって
571デフォルトの名無しさん:2012/01/13(金) 23:56:24.28
コピペ君って馬鹿だな、まで読んだ。
572デフォルトの名無しさん:2012/01/14(土) 01:19:38.92
君って馬鹿だな、まで読んだ。
573デフォルトの名無しさん:2012/01/14(土) 01:19:55.31
んだ。
574デフォルトの名無しさん:2012/01/14(土) 02:13:44.35
http://infoyou.jp/MemoRand/another_program.html

まあ、見たら?
彼は何も参照しないで、アセンブラーにして一万行を一ヶ月で動作状態にして、書けるようだから。
575デフォルトの名無しさん:2012/01/14(土) 05:29:28.34
Microsoft Visual C# 2010 Express を使い始めたのですが、
標準の文字コードはSJISになっているのでしょうか?

何も考えずに.csファイルを作ってエディタで開いて文字コードを確認したらSJISになっていました。
SJISにない文字を入れて保存するとUTF8で保存しなおしてくれるようなのですが、
標準で何もしなくても UTF8 で保存するにはどこを設定すれば良いのでしょうか?
576デフォルトの名無しさん:2012/01/14(土) 06:30:55.76
>>575
Shift-JIS vs UTF8 と考えるからおかしくなるんだ
ASCII vs UTF8 と考えてみたまえ
その疑問は無意味だ
577デフォルトの名無しさん:2012/01/14(土) 08:28:00.11
犬 猫 龍 虎 猫 龍 龍 犬
この文字列から龍が何個あるか調べるにはどうすればいいですか?
578デフォルトの名無しさん:2012/01/14(土) 08:33:43.36
"犬 猫 龍 虎 猫 龍 龍 犬 ".Count(c=>c=='龍')
579デフォルトの名無しさん:2012/01/14(土) 10:09:58.36
c=>c== これどういう意味?
580デフォルトの名無しさん:2012/01/14(土) 10:11:40.11
581デフォルトの名無しさん:2012/01/14(土) 10:15:31.07
>>579
そこで区切るかw

左辺 c=>c
右辺 '龍'
582デフォルトの名無しさん:2012/01/14(土) 10:18:24.49
食わず嫌いして見向きしてなかったLINQというやつだね。
さらっとみただけでは到底理解できない。。。
583デフォルトの名無しさん:2012/01/14(土) 10:21:35.91
おおよそやろうとしてることは理解できるが一番謎なのは
cがどこからでてきたのかだ
C#のような型を明確にする言語の常識でみるとcの存在は気持ち悪い
584デフォルトの名無しさん:2012/01/14(土) 10:31:02.47
意味わかんねー
誰か丁寧に教えて
585デフォルトの名無しさん:2012/01/14(土) 10:31:18.90
なるべく省略しないで書くと
(int c) =>{ return c == '龍'; }
C#は型推論とかデリゲートとかで型省略しまくりだが
あくまで略記であってコンパイル時に静的に型が決まっていることには変わりない(dynamicは例外)
586デフォルトの名無しさん:2012/01/14(土) 10:32:33.88
>>583
型推論により、型の指定が省略されているだけだろ
コンパイル時には、右辺の '龍' により型が推論されるから何も問題無い
587デフォルトの名無しさん:2012/01/14(土) 10:37:00.36
プログラミングっていうより正規表現に近いな
588デフォルトの名無しさん:2012/01/14(土) 10:40:25.84
>>586
それは間違い
ラムダ式の内容に関係なく、Countの引数の型がFunc<char, bool>だから
戻り値がboolで引数がcharと推論される
589デフォルトの名無しさん:2012/01/14(土) 10:40:52.32
ラムダ式勉強して、仕事のプログラムでつかったら、
「新人とかわからんだろ、何考えてるんだ」って怒られたな。
みんなのところは、平気でこういう新技術的なのつかわせてもらえるの?
590デフォルトの名無しさん:2012/01/14(土) 10:43:27.43
>>589
新技術っていうよりそれまでのC#とは別物のような気がする
591デフォルトの名無しさん:2012/01/14(土) 10:44:28.79
そんな大袈裟なもんでもない
川俣の読み過ぎ
592デフォルトの名無しさん:2012/01/14(土) 10:46:54.31
>>591
まあ蓋を開けてみればそうなんだが、明らかに型を明確にするのがC#って
感じだったのに「慣れた人のための楽する方法」になってるので感じが違いすぎる
593デフォルトの名無しさん:2012/01/14(土) 10:47:31.99
>>589
そんなもん、言語の標準機能なのに解らない方が悪い。
新人がどうこうより、その文句言った奴が解らないだけなんじゃないだろうか。
594デフォルトの名無しさん:2012/01/14(土) 10:49:18.31
>>593
いやいやw
C#使える時点で生産性はあがってるのに、明らかに言語のスタイルから
外れたような新機能で可読性を犠牲にしてまでやる必要はない
595デフォルトの名無しさん:2012/01/14(土) 10:57:02.35
なんでcに1文字が入るのかわからん
596デフォルトの名無しさん:2012/01/14(土) 10:57:51.41
ラムダはC++やJavaも欲しがってるぞ
それに言語のスタイルもクソも、C#はどんどん便利なもの取り入れて拡張していくスタイルだろ
597デフォルトの名無しさん:2012/01/14(土) 10:59:08.35
>>596
それまでの便利だから取り込むを超えてる気がする

タイプ面倒なので変数名はアルファベット1文字でいいよね
に近いくらい可読性が犠牲になってる気がする
598デフォルトの名無しさん:2012/01/14(土) 10:59:28.33
var v = "犬 猫 龍 虎 猫 龍 龍 犬 ";


//このラムダ式は
Console.WriteLine(v.Count(c=>c=='龍').ToString());

//この匿名メソッドの省略記法みたいなもんだが、
//匿名メソッドの方が可読性が良いかどうかは疑問だ
var v = "犬 猫 龍 虎 猫 龍 龍 犬 ";
Console.WriteLine(v.Count(delegate(char c){
  return c == '龍';
}));
599デフォルトの名無しさん:2012/01/14(土) 11:00:21.39
"犬 猫 龍 虎 猫 龍 龍 犬 ".Count(c=>c=='龍')
これ、一文字ならOKだけど、"猫 龍"を検索しようとするとエラーになるね。
char型はOKだけど、string型は駄目ってことかな?
600デフォルトの名無しさん:2012/01/14(土) 11:00:43.64
一部消し忘れたが勘弁
601デフォルトの名無しさん:2012/01/14(土) 11:02:00.93
>>599
String.Countの引数見ろし
602デフォルトの名無しさん:2012/01/14(土) 11:06:27.21
private static bool Is龍(char c) { return c == '龍'; } // これは離れた場所にある
Enumerable.Count<char>(v, new Func<char, bool>(Is龍));
ジェネリックと拡張メソッド使ってる以外はこれが初期のC#だが、分かりやすいか?こんなもん
603602:2012/01/14(土) 11:07:10.87
訂正
拡張メソッドは使ってない
604デフォルトの名無しさん:2012/01/14(土) 11:16:26.36
やはり俺は
int cnt = 0;
foreach (char c in "犬 猫 龍 虎 猫 龍 龍 犬 ".ToCharArray())
{
if (c == '龍')
{
cnt++;
}
}
がわかりやすいなw
605デフォルトの名無しさん:2012/01/14(土) 11:17:13.54
C#3.0の時代からあって今C#4.0でもうすぐC#5.0が出る/出たっていってるのに
いまさら何言ってんすか
606デフォルトの名無しさん:2012/01/14(土) 11:18:47.05
冗長だから可読性高いというのはコードの密度が下がって読む速度が分量的に上がってるだけ
余計なノイズを排除して本質だけを残すことによって可読性が良くなるとも考えられる
607デフォルトの名無しさん:2012/01/14(土) 11:19:06.89
まあかく言う俺もvarの便利さに最近気付いたんだがな
608デフォルトの名無しさん:2012/01/14(土) 11:20:34.09
>>606
問題は慣れたプログラマばっかりじゃないってことだ
その点を忘れてるよね
609デフォルトの名無しさん:2012/01/14(土) 11:21:06.12
レベルによってどれがいいかも変わるだろう
なかなか万人向けの基準を作るのは難しいな
610デフォルトの名無しさん:2012/01/14(土) 11:24:44.87
>>607
俺もだ
ちょっと前までは、何となく気持ち悪さを感じてたが
右辺での初期化が強制されるので、今はvarの方が良いと感じる
611デフォルトの名無しさん:2012/01/14(土) 11:32:56.86
>>610 ん? どういうこと?
612デフォルトの名無しさん:2012/01/14(土) 11:39:50.58
型推論は代入時に型が確定する。
よって var による変数の定義には、常に代入 = 初期値の投入が必要になるってことじゃない?

自分は複数の変数定義を一遍にやるときに、各行の変数の位置が揃うのが気に入ったんだけれど。
613デフォルトの名無しさん:2012/01/14(土) 11:57:47.79
頭に全神経使ってるときは
そういう微妙なストレスと言えるかも微妙な不快感すら受けたくないよね
614デフォルトの名無しさん:2012/01/14(土) 12:00:31.89
varの弱点は初心者の学習の妨げになることや
objectの受け方でコードが理解しづらくなること
615デフォルトの名無しさん:2012/01/14(土) 12:03:28.41
どうせvarでも静的に型確定するんだし、ふつーに型宣言すりゃいいのに
びみょーな手抜きしやがってからに。。
616デフォルトの名無しさん:2012/01/14(土) 12:21:51.52
長い型書きたくないもんねー
617デフォルトの名無しさん:2012/01/14(土) 12:39:30.53
型宣言の必要性を盲信する人達の言うことを聞いたせいで
ArrayList<Hoge> list = new ArrayList<>();
みたいな明後日の方向へ行っちゃった言語もある
618デフォルトの名無しさん:2012/01/14(土) 12:39:47.97
>>594
可読性w
619デフォルトの名無しさん:2012/01/14(土) 12:42:17.32
時々メソッド呼び出しの中に長々とラムダ式入れる馬鹿がいるよな
外に出せとw
620デフォルトの名無しさん:2012/01/14(土) 12:42:32.90
varで書いてコミット前に置換すれば解決じゃねw
621デフォルトの名無しさん:2012/01/14(土) 12:46:31.55
ジェネリック型が絡むと型名がクッソ長くなるから型推論は当然の要請だわ
ディクショナリーを列挙するたびにKeyValuePair`2とか書いてたら日が暮れるぞ
622デフォルトの名無しさん:2012/01/14(土) 12:48:29.59
大丈夫
我々にはまだ明日がある
623デフォルトの名無しさん:2012/01/14(土) 13:02:26.46
こういう流れ好き
624デフォルトの名無しさん:2012/01/14(土) 13:07:22.14
>>618
笑うところじゃないだろ

わかってる人じゃないと読めないコードは可読性悪いコードだろ

625デフォルトの名無しさん:2012/01/14(土) 13:09:17.21
分かれよ

って話
626デフォルトの名無しさん:2012/01/14(土) 13:11:13.47
>>625
いやいや
LINQとかラムダ式は別の段階だわ
その辺が実装される前までは分かれよだけど
627デフォルトの名無しさん:2012/01/14(土) 13:16:31.65
可読性じゃなくレベルが低いんだな
628デフォルトの名無しさん:2012/01/14(土) 13:17:42.57
>>627
少人数でコード書くのならそれでいいと思うよ
629デフォルトの名無しさん:2012/01/14(土) 13:19:33.61
>>628
コーディング規約で決まっているのならそれでいいんじゃないか
630デフォルトの名無しさん:2012/01/14(土) 13:20:38.55
何人規模か知らないけど、一生小学生とコーディングしてればいいんじゃない
631デフォルトの名無しさん:2012/01/14(土) 13:21:50.26
LINQとラムダ式を規制したら小学生とかww
レベル低いのはお前だろ
632デフォルトの名無しさん:2012/01/14(土) 13:23:16.73
可読性の中でも読み手のレベルによって左右されている部分は、結局のところ環境によってしまうよね。
633デフォルトの名無しさん:2012/01/14(土) 13:24:57.10
頭がいいスーパーマン()ならLINQとラムダ式無しで対応できるだろww
そんなこともできないの?ww

IDEが支援してくれるのにwww

メタボなんだしせめて指先だけでも動かしたほうがいいんじゃないの?ww
634デフォルトの名無しさん:2012/01/14(土) 13:26:30.34
だから集団には規則がある。
635デフォルトの名無しさん:2012/01/14(土) 13:27:07.86
草が生え始めましたよ
馬鹿にされて悔しいのは分かるけど落ち着こうね
君が最強だよ
636デフォルトの名無しさん:2012/01/14(土) 13:31:56.60
新人が分からんだろうって、分からなかったら聞けよ
質問したこと、答えたことないのか?
637デフォルトの名無しさん:2012/01/14(土) 13:34:47.88
答えるにしても「ラムダ式っていう名前だから、後は調べて」で終わる
手取り足取する必要性ないし
習得に1日かかるようなものでもない
638デフォルトの名無しさん:2012/01/14(土) 13:35:28.46
LINQとラムダ式までばりばりに使える人を探すより
その手前まではきっちり使える人を探すほうが楽って話
639デフォルトの名無しさん:2012/01/14(土) 13:35:46.74
分かっていないのは新人じゃなくて、規約だけを作っているような層だろ
あいつら平気でJavaの規約を.NETにコピペ流用したりするし
640デフォルトの名無しさん:2012/01/14(土) 13:36:10.06
可読性の話をしているのだから使える必要性はない
論点がずれている
641デフォルトの名無しさん:2012/01/14(土) 13:36:21.74
まあ野放にLINQ許可すると、パズルにして遊ぶ奴出てくるのが問題だな
パット見で理解出来るレベルは許可しても良さそうだが、線引きやりにくい
642デフォルトの名無しさん:2012/01/14(土) 13:37:57.10
ばりばりに使えるレベルまでは行かなくとも
意味が分かるレベルまでは1時間で行ってもらわんと困るわ
643デフォルトの名無しさん:2012/01/14(土) 13:39:15.49
>>642
そんなの教えたりする暇があるなら本来の目的を理解してくれってことだ
LINQやラムダ式はなくてもできる
644デフォルトの名無しさん:2012/01/14(土) 13:39:49.34
「ラムダ式っていう名前だから、後は調べて」って答えるのに一時間かかるのか?
645デフォルトの名無しさん:2012/01/14(土) 13:40:30.96
職場のレベルに追いつくのは目的と外れているとでも言いたげ。
646デフォルトの名無しさん:2012/01/14(土) 13:41:00.91
いちいち時間割いて教えるようなことか?
647デフォルトの名無しさん:2012/01/14(土) 13:41:25.77
>>644
アホか
業務レベルでそんな指示して時間消費されるのももったいないし
何かの際にそんなことで慣れてる人に割り込み入る方がもったいない

LINQやラムダ式使えたら新しいことができるわけでもない
648デフォルトの名無しさん:2012/01/14(土) 13:42:24.90
ラムダ式を使えない奴が30分かけて作ったコレクション操作と、LINQで1分で書いたラムダ式
信頼性が高いと思うのはどっち?
649デフォルトの名無しさん:2012/01/14(土) 13:43:12.10
ものの十数秒質問するためにメールでアポイント取ってるのか?
こんなの食事中の雑談の中でも質問できるだろうが
コミュ症なのかもしらんけど
650デフォルトの名無しさん:2012/01/14(土) 13:43:49.86
一言答えるのがもったいないって時給いくらなんでしょ
651デフォルトの名無しさん:2012/01/14(土) 13:44:44.13
「ラムダ式を習得しなさい」と指示出すわけでもあるまい。
分からん文法が出てきたら聞くだけの話で、何が業務レベルだ。
652デフォルトの名無しさん:2012/01/14(土) 13:45:39.90
一言ってw

わかってるやつに割り込みいれることほどもったいないことは無い

日本でデスマ案件が発生する理由の最たる例じゃないか

人が追加されるので先に投入されてる人が自分の持分にかかれなくて
追加投入された人に時間さかれるからさらに効率落ちてるのに
653デフォルトの名無しさん:2012/01/14(土) 13:46:28.99
>>652
分かってる奴が増えないから答えられる奴が増えないんだよ
654デフォルトの名無しさん:2012/01/14(土) 13:47:24.75
んで分かってる奴の負担が増えるとか言い出すんだよね。
知識共有してますか?


はい、草いただきました。
655デフォルトの名無しさん:2012/01/14(土) 13:47:58.73
大げさだな
ラムダ式なんてぶっちゃけそんなに大層なことじゃないだろ
656デフォルトの名無しさん:2012/01/14(土) 13:48:25.34
後で尻拭いするよりは最初から面倒を見た方が楽だよ
657デフォルトの名無しさん:2012/01/14(土) 13:49:00.09
駄目な職場ってのは勉強会もしないしな。
658デフォルトの名無しさん:2012/01/14(土) 13:49:53.57
だからLINQとラムダ式は使わない
でいいじゃないか

自分がいなくなってレベルが低い人が来ようが問題ないし
659デフォルトの名無しさん:2012/01/14(土) 13:52:20.88
>>648
ラムダ式を使える奴が、ラムダ式を使わないで1分で書いたコレクション操作、
これが一番信頼性が高いだろう。
660デフォルトの名無しさん:2012/01/14(土) 13:52:54.91
自分が職場の足引っ張ってるの間違いじゃない
661デフォルトの名無しさん:2012/01/14(土) 13:53:19.73
アホだなあ
LINQの高度なコレクション操作は.NETライブラリに同等品が無いし、ラムダ式もIQueryable使用時には必須と言っていい
好みの問題で避けて通れるようなもんじゃないんだよ

>>659
じゃあ1分で書けよ
662デフォルトの名無しさん:2012/01/14(土) 13:53:33.58
経営者でもない人間がいなくなった後の心配をする必要はない
663デフォルトの名無しさん:2012/01/14(土) 13:55:09.23
人に教えてる経験上、
ラムダ式はみんな一発で覚える。
それくらい、「今までになかっただけで実は簡単」だと思う。

むしろ、eventとかyield returnの方が全然わかってもらえない。
664デフォルトの名無しさん:2012/01/14(土) 13:55:15.43
メソッドにして分離するとセマンティクスがその場に残らないし
665デフォルトの名無しさん:2012/01/14(土) 14:10:41.02
いつもこの流れだ
他所でやれ
666デフォルトの名無しさん:2012/01/14(土) 14:22:41.65
ラムダ式使える俺カッコイイってやつが威張っているだけにしか見えない
667デフォルトの名無しさん:2012/01/14(土) 14:26:07.07
データ抽出に関してはLINQの方が読みやすいでしょ。
SQLの実行計画見る度に思ってた、データ抽出の動作を書くのって冗長だなって。
拡張メソッド形式ならC#っぽさも残ってるし、みんな覚えた方がいいよ。
668デフォルトの名無しさん:2012/01/14(土) 14:26:09.31
ここは


ふらっとスレですよ
669デフォルトの名無しさん:2012/01/14(土) 14:33:09.70
>>667
たとえばどんなのよ
670デフォルトの名無しさん:2012/01/14(土) 14:36:04.85
使えて当然だからカッコいいとか無いわー
今更ラムダ式使わないってアピールしている方が異常者だよ
Windows Phone 7だとDBにはLINQ to SQLしか用意されてないんだぞ?
671デフォルトの名無しさん:2012/01/14(土) 14:37:17.73
LINQは割と複雑だけど、ラムダ使えないってのは恥でしかないわ
672デフォルトの名無しさん:2012/01/14(土) 14:40:42.68
ラムダ式は一つの特性除いてそう変わった仕組みじゃない
TPOに分けて使えばいい
野球で言えばバントみたいなものかな
スリーバントのような特殊ルールがある

Linqは勘違いしてるけど置き換えじゃない
新しい概念
野球に対してサッカーのような…
673デフォルトの名無しさん:2012/01/14(土) 14:41:16.89
ラムダ式って使い方がひどいと1行プログラムみたいな醜い存在だからなあ
674デフォルトの名無しさん:2012/01/14(土) 14:50:19.99
おまいら土曜の昼間に何やってんだよw
675デフォルトの名無しさん:2012/01/14(土) 14:51:22.75
なんか、昔の三項演算子規制が懐かしい。

ラムダ式は見た目が取っつきづらいだけで、技術者レベルならそんなに難しいもんじゃないでしょ。
センパイが書いたコードを理解するためにお勉強して、そいつも使えるようになったらそれでいいじゃん。
もちろん限度はあるけど。

>>613
初めてわかってもらえたような気がする。。。
676デフォルトの名無しさん:2012/01/14(土) 14:58:50.43
>>669
例えばと言われても一般に言われているLINQの有用性に対し肯定してるってだけだよ?
ググればいくらでも出てくる。

可読性を損なうケースもあるらしいけどまだ経験無いや
データ項目中の区分値によって条件自体が変わるとか?
677デフォルトの名無しさん:2012/01/14(土) 15:00:19.93
>何かの際にそんなことで慣れてる人に割り込み入る方がもったいない

新人を教育する係すらいないスバラシイ職場です
この世のインフェルノを体験したい方は是非ご入社ください

いつまで経っても教育してると感じているなら、それは世代交代できていない証
全然自慢にならない

本来は次の兵卒が軍曹に上がってくるはずなのに、後人が育たないからいつまで経っても軍曹の上に行けない
軍曹役が好きな人なら別だけど
678デフォルトの名無しさん:2012/01/14(土) 15:00:58.87
拡張メソッド形式使えばいいよ
どっちにしても気持ち悪さは残るけど
679デフォルトの名無しさん:2012/01/14(土) 15:01:24.53
述語の連結
流れるようなインターフェース
視認性の高さは語り尽くされてると思うけど
680デフォルトの名無しさん:2012/01/14(土) 15:01:33.33
アフィブログは既に各所に拡散していた!アクア板で転載される被害続出!さらに画像も無断転載!
http://awabi.2ch.net/test/read.cgi/poverty/1326513346/

専門スレが餌食に!!

そのうちここのくだらないやり取りがまとめになるかも!!
681デフォルトの名無しさん:2012/01/14(土) 15:02:23.20
>>680
これをどうまとめるのか、やってみろとしか言えんわw
682デフォルトの名無しさん:2012/01/14(土) 15:03:48.86
>>677
そうは言っても、定着率が低いのは環境だけでなく業界の都合もあるでしかし
683デフォルトの名無しさん:2012/01/14(土) 15:05:34.28
まとめ許可頂きました。
684デフォルトの名無しさん:2012/01/14(土) 15:05:58.82
linq嫌いでも拡張メソッドのCountやFirstOrDefaultだけ使えばいい
685デフォルトの名無しさん:2012/01/14(土) 15:13:14.98
まとめ見るようなやつらだとブログのコメント欄に「日本語でOK」が並びそう
686デフォルトの名無しさん:2012/01/14(土) 15:13:57.31
ひょっとしてここでLINQって言われてるのは「クエリ構文」のことか?
てっきりEnumerableの拡張メソッド群のことかと思ってたが
687デフォルトの名無しさん:2012/01/14(土) 15:14:19.11
>>683
許可しない
俺の投稿は俺の著作物
無断転用は断る
688デフォルトの名無しさん:2012/01/14(土) 15:25:49.42
↑この人を赤&デカ字でお願い
689デフォルトの名無しさん:2012/01/14(土) 15:45:13.08
ListやArrayにはForEachがありますが、なぜEnumerableに拡張メソッドとして無いんですか?
あると便利だと思うんですが。まぁ .ToList().ForEach(...) とかやればできますけど。
690599:2012/01/14(土) 16:24:30.63
"犬 猫 龍 虎 猫 龍 龍 犬 "から"猫 龍"するにはどうしたらいい?
691デフォルトの名無しさん:2012/01/14(土) 16:34:42.60
string CatAndDragon()
{
string src = "犬 猫 龍 虎 猫 龍 龍 犬 ";
return "猫 龍";
}
692デフォルトの名無しさん:2012/01/14(土) 16:35:19.98
佐野量子思い出した
693599:2012/01/14(土) 16:38:19.04
>>691
自分の質問見直して吹いたw

"犬 猫 龍 虎 猫 龍 龍 犬 "から"猫 龍"が何個あるか検索するにはどうしたらいい?
694デフォルトの名無しさん:2012/01/14(土) 16:44:26.84

反日ネット工作員
朝日新聞社→社員約300人
民主党とその取り巻きの資金が入った反日工作会社→数社約450人

朝日新聞の社員は捕まった49歳の編集者を含め新聞記事を書く合間に2chを荒らしている程度とみられているが
民主党が用意した反日工作会社はほぼ24時間体制で工作を行っている
工作範囲は民主党が予め工作費を流している2ch、ニコニコ動画を中心にyoutube、個人のブログなどである。

695デフォルトの名無しさん:2012/01/14(土) 16:45:12.20
Regex.Matches("犬 猫 龍 虎 猫 龍 龍 犬 ", "猫 龍").Count
汎用性を持たせるならRegex.Escapeして前後に\sのゼロ幅アサーションを追加する
696デフォルトの名無しさん:2012/01/14(土) 16:48:49.53
>>693
「猫」と「龍」の個数の和?「猫 龍」の一連の文字の個数?
前者の前提で、

var str = "犬 猫 龍 虎 猫 龍 龍 犬 ";
var count = Regex.Matches(str, "猫").Count
+ Regex.Matches(str, "龍").Count;
Console.WriteLine(count);
697デフォルトの名無しさん:2012/01/14(土) 17:01:10.85
無駄すぎて吹いたw
698デフォルトの名無しさん:2012/01/14(土) 17:03:11.27
無駄過ぎと笑う場合は無駄すぎないソースを示す事
699デフォルトの名無しさん:2012/01/14(土) 17:06:23.25
"犬 猫 龍 虎 猫 龍 龍 犬 ".Count(c=>c=='猫' || c=='龍')
700599:2012/01/14(土) 17:08:50.03
>>696
ごめん、後者です。
701デフォルトの名無しさん:2012/01/14(土) 17:12:07.88
>>699
簡潔過ぎワロタ
702デフォルトの名無しさん:2012/01/14(土) 17:13:02.59
しーしゃーぷはStringオブジェクトの文字列比較を
==演算子で見れるようデフォルトでオーバーロード
してあるんだっけ?
703デフォルトの名無しさん:2012/01/14(土) 17:14:40.42
オーバーロードじゃないよ
704デフォルトの名無しさん:2012/01/14(土) 17:14:44.52

反日ネット工作員
朝日新聞社→社員約300人
民主党とその取り巻きの資金が入った反日工作会社→数社約450人

朝日新聞の社員は捕まった49歳の編集者を含め新聞記事を書く合間に2chを荒らしている程度とみられているが
民主党が用意した反日工作会社はほぼ24時間体制で工作を行っている
工作範囲は民主党が予め工作費を流している2ch、ニコニコ動画を中心にyoutube、個人のブログなどである。

705デフォルトの名無しさん:2012/01/14(土) 17:16:35.67
>>703
じゃなんなの?
何もしなくてもオブジェクト内の文字列を==で
比較できる言語仕様になってるってこと?
706デフォルトの名無しさん:2012/01/14(土) 17:19:08.63
オーバーライド
707デフォルトの名無しさん:2012/01/14(土) 17:21:17.57
>>576
すいません、よくわからないんですが
設定できないということなんでしょうか?
708デフォルトの名無しさん:2012/01/14(土) 17:21:41.36
演算子はstaticだからオーバーライド出来ませーん
709デフォルトの名無しさん:2012/01/14(土) 17:22:37.98
710デフォルトの名無しさん:2012/01/14(土) 17:23:33.51
オーバーライドと言いたいのか?
711デフォルトの名無しさん:2012/01/14(土) 17:24:36.07
オーバーロードと言いたいんだよ。。。
というか>>706はオーバーライドの意味わかってんのか?
712デフォルトの名無しさん:2012/01/14(土) 17:27:55.15
>>699
それ正しいの?
文字列と文字の比較してるよねぇ
713デフォルトの名無しさん:2012/01/14(土) 17:29:13.07
>>712
正しい
714デフォルトの名無しさん:2012/01/14(土) 17:30:33.12
りゆー
715デフォルトの名無しさん:2012/01/14(土) 17:33:09.39
716デフォルトの名無しさん:2012/01/14(土) 17:33:14.02
動かしてみればいいじゃない
717712:2012/01/14(土) 17:33:34.67
ああ、Char配列になるのか、納得。
718デフォルトの名無しさん:2012/01/14(土) 17:34:43.86
配列にはならん
IEnumerable<char>
719デフォルトの名無しさん:2012/01/14(土) 17:35:33.83
フォームを閉じた時に文字列を返す方法を教えて
720デフォルトの名無しさん:2012/01/14(土) 17:35:48.62
>>719
どこに?
721デフォルトの名無しさん:2012/01/14(土) 17:57:42.23
というか文字列のラッパークラスオブジェクトとCのChar文字列
を同義に考えてるやつがまだいるのか??
722デフォルトの名無しさん:2012/01/14(土) 18:18:15.18
ヒント: スレタイ
723デフォルトの名無しさん:2012/01/14(土) 18:18:48.69
>>722
そうだったすまん。。
724デフォルトの名無しさん:2012/01/14(土) 18:22:14.15
ド素人だからHelloWorldをまずやってみることにしたんだけど、デバッグで確認したら、確かにhello world表示したけど一瞬でデバッグ終了した・・・
「キー押すまで消えないよ」に設定するにはどうすればいいのですか?それともソースの最後になにか記号いれなきゃいけない場合教えてくださいー。
Small Basicでは標準でキー押すまで消えなくてそれが好きだったのに。
725デフォルトの名無しさん:2012/01/14(土) 18:23:41.74
HelloWorldでデバッグ??w
まあそれはいいとして、ブレイクポイントいれろよだったら。。
726デフォルトの名無しさん:2012/01/14(土) 18:24:47.81
ちなみにPress Any Key To Continueのことね
727デフォルトの名無しさん:2012/01/14(土) 18:25:10.56
>>725
詳しく教えてくれ!
728デフォルトの名無しさん:2012/01/14(土) 18:27:00.23
Console.ReadKey()おすすめ
729デフォルトの名無しさん:2012/01/14(土) 18:28:42.12
Console.ReadLine();
730デフォルトの名無しさん:2012/01/14(土) 18:31:03.49
throw new Exception( "Goodbye World!" );
731デフォルトの名無しさん:2012/01/14(土) 18:31:29.69
>>720
string s = myform.Show(this);
    ↑ここ
732デフォルトの名無しさん:2012/01/14(土) 18:32:25.91
うぉ、りょ、両方試してみる。サンクス
733デフォルトの名無しさん:2012/01/14(土) 18:38:24.53
参照設定で System.Windows.Formsを追加してから

using System.Windows.Forms;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
MessageBox.Show("Hello world");
}
}
}

と言うHello Worldも有りだよ
734デフォルトの名無しさん:2012/01/14(土) 18:40:55.33
>>731
まずShowメソッドはvoid型だからの戻り値はなし
さらにShowメソッドはフォームが閉じるまで待機しない

myform.Closingイベントを設定して閉じる直前にプロパティ等で取得するか、
モーダル(フォームが閉じるまで制御が戻らない)をお望みなら
myform.ShowDialog()してから同様にプロパティ等で取得する。

プロパティというのは、myformの型の方で文字列を取得できるように公開しておくということ。
735デフォルトの名無しさん:2012/01/14(土) 18:41:06.57
>>731
myform.Show(this);がどのような実装か知らないけど
一般的なFormのShowなら無理
Showで表示してもそこで止まらないから

モーダルなフォーム(ダイアログ)にしてShowDiaologなら可能

それが嫌ならmyformにpublicなプロパティつけろよ
もう一個方法あるけどすすめない
736デフォルトの名無しさん:2012/01/14(土) 18:42:47.05
被った…いやん
737デフォルトの名無しさん:2012/01/14(土) 18:43:00.01
ちなみに
Console.write

Console.writeline
の違いってなに?
738デフォルトの名無しさん:2012/01/14(土) 18:43:42.87
>>734-735
やってみる。ありがとう
739デフォルトの名無しさん:2012/01/14(土) 18:43:47.92
改行の有無
740デフォルトの名無しさん:2012/01/14(土) 18:43:55.64
>>737
改行するかどうか
741デフォルトの名無しさん:2012/01/14(土) 18:45:07.79
writeもwritelineもそんなもんはない
742デフォルトの名無しさん:2012/01/14(土) 18:45:15.95
質問。

インスタンスから、インスタンスの名前そのものを取得することは可能?
var hoge = 1;
とある場合に、変数 hoge から文字列 "hoge" を取得すると言うふうに。
たとえば自作クラスに name プロパティを作って、その初期値に、インスタンスの名前を入れて置くようなことをしたい。

デバッグ用のログ出力で楽することを考えている程度だから無理ならいいのだけど、C# なら出来そうな気がして。
743デフォルトの名無しさん:2012/01/14(土) 18:45:42.33
>>740
つまり
console.writeline("お名前は?"); (これだと)
| ←(ここからタイピングできるってこと?)
744デフォルトの名無しさん:2012/01/14(土) 18:45:47.95
>>719
質問の回答だと「public new string ShowDialog()を作れ」だけど、
newは良くないからプロパティでその文字列を公開する。

汎用的なFormならこんなのも用意してやる。
var hoge = hogeDialog.ShowDialog2(); // Cancel時はnullか空文字が返るように。
hogeDialog.Dispose();
おっと、using使いたいけどそうするとhogeのスコープが限定されると。
ShowDialog2の中でDisposeするか??
745デフォルトの名無しさん:2012/01/14(土) 18:46:30.47
>>739-741
ふいたw
746デフォルトの名無しさん:2012/01/14(土) 18:47:03.42
馬鹿は回答すんなよ
747デフォルトの名無しさん:2012/01/14(土) 18:47:23.35
>>742
可能だけど無意味
748デフォルトの名無しさん:2012/01/14(土) 18:48:13.13
はぁい、いいですかぁ?
ソフトは一字一句ただしく書きましょうね
コンパイラさんは厳密ですよぉ?

http://msdn.microsoft.com/ja-jp/library/system.console.write(v=vs.80).aspx

http://msdn.microsoft.com/ja-jp/library/system.console.writeline(v=VS.80).aspx
749744:2012/01/14(土) 18:48:27.60
書いてる間に話がだいぶ進んでたw
750デフォルトの名無しさん:2012/01/14(土) 18:49:22.99
>>745
Console.Out.WriteLineって書けばいいのかおい?
751デフォルトの名無しさん:2012/01/14(土) 18:50:58.20
752デフォルトの名無しさん:2012/01/14(土) 18:53:26.77
次はFloatについて質問しろよ
753デフォルトの名無しさん:2012/01/14(土) 18:54:49.86
浮動小数点って何が浮動するんですか?
754デフォルトの名無しさん:2012/01/14(土) 18:55:15.57
>>753
www
小数点に決まってんだろ
755デフォルトの名無しさん:2012/01/14(土) 18:55:47.21
名前を聞いてきて、答えると「ようこそ、「名前」さん!」っていうの作ってるんだけど、名前を読み込んだあとの出力するところ、これだとエラーでる。
助けて

Console.WriteLine("What is your name?");
Var name = Console.ReadLine();
Console.Write("Hello" name");
756デフォルトの名無しさん:2012/01/14(土) 18:55:59.25
>>724
control+F5
757デフォルトの名無しさん:2012/01/14(土) 18:56:55.00
>>756
目から鱗やありがとう
758デフォルトの名無しさん:2012/01/14(土) 18:56:59.82
>>755
×Console.Write("Hello" name");
○Console.Write("Hello" + name);
759デフォルトの名無しさん:2012/01/14(土) 18:57:01.44
>>742
意味が分からないけど、リフレクションかな。
プロパティとフィールド一覧およびその内容などが取得可能。
760デフォルトの名無しさん:2012/01/14(土) 18:57:33.71
かつてないConsoleブームw
761デフォルトの名無しさん:2012/01/14(土) 18:59:11.81
>>758
できた!hello とnameの間にスペースとるにはどうすれば・・・・
762デフォルトの名無しさん:2012/01/14(土) 18:59:35.01
Console.Write("Hello " + name + " !");

みたいにスペース入れた方がいいかもな

まあやればわかる
763デフォルトの名無しさん:2012/01/14(土) 19:01:01.59
>>762
エスパー登場w
764デフォルトの名無しさん:2012/01/14(土) 19:02:24.60
Consoleに何レス費やす気だw
765デフォルトの名無しさん:2012/01/14(土) 19:04:20.59
プログラミングのやり始めの時期は、だれだってコンソールCUIに
夢中になったはずだ
766デフォルトの名無しさん:2012/01/14(土) 19:07:19.03
RADで動きもしない大層なUIを組んだよ派
767デフォルトの名無しさん:2012/01/14(土) 19:07:21.26
>>763
で、次は途中で改行するにはどうすれば・・・・
だろ?w
768デフォルトの名無しさん:2012/01/14(土) 19:07:46.87
20〜30年前だろ
769デフォルトの名無しさん:2012/01/14(土) 19:08:42.94
このConsoleクラスも、半分デバッグ用だろ今や。。
770デフォルトの名無しさん:2012/01/14(土) 19:10:08.22
え!
771デフォルトの名無しさん:2012/01/14(土) 19:23:53.50
ディスクリプタオブジェクトの魔力は現代でも人々を虜にして止まない
772デフォルトの名無しさん:2012/01/14(土) 19:24:49.08
Debugの方は初期状態で名前空間がインポートされて無いって意味だろ?
773デフォルトの名無しさん:2012/01/14(土) 19:25:40.12
Console一つ取ってもリダイレクトしたりどこかのプロセスに渡したり
774デフォルトの名無しさん:2012/01/14(土) 19:26:04.19
いやいやTraceSource使えよ
775デフォルトの名無しさん:2012/01/14(土) 19:29:59.20
TraceSource?何ソレ美味しいの?
776デフォルトの名無しさん:2012/01/14(土) 19:35:03.57
DebugみたいにDEBUGシンボルが立ってないと無効になるとかそういう欠点のないものだよ
777デフォルトの名無しさん:2012/01/14(土) 19:35:39.00
ググったけど美味そうには見えなかった。
Visual Studioの出力ウィンドウ上でフィルタリングとか出来るやつは無いの?
778デフォルトの名無しさん:2012/01/14(土) 19:38:30.99
log4派なので
779デフォルトの名無しさん:2012/01/14(土) 19:39:49.27
引数にインスタンス生成できませんか
780デフォルトの名無しさん:2012/01/14(土) 19:40:43.85
表現を変えてください
781デフォルトの名無しさん:2012/01/14(土) 19:48:12.26
コンソールってだめですか・・・・
なんかHALと喋ってるみたいで内心興奮します
782デフォルトの名無しさん:2012/01/14(土) 19:49:30.03
ですよね
SCMも当然コンソール派です
Tortoiseとか笑わせないでくださいよ
783デフォルトの名無しさん:2012/01/14(土) 19:50:53.65
しぃゆぅあぃ
784デフォルトの名無しさん:2012/01/14(土) 20:00:58.33
さて、HelloWorldと「名前」さんこんにちは、は出来た。
次はなにしようか
785デフォルトの名無しさん:2012/01/14(土) 20:01:20.89

反日ネット工作員
朝日新聞社→社員約300人
民主党とその取り巻きの資金が入った反日工作会社→数社約450人

朝日新聞の社員は捕まった49歳の編集者を含め新聞記事を書く合間に2chを荒らしている程度とみられているが
民主党が用意した反日工作会社はほぼ24時間体制で工作を行っている
工作範囲は民主党が予め工作費を流している2ch、ニコニコ動画を中心にyoutube、個人のブログなどである。

786デフォルトの名無しさん:2012/01/14(土) 20:03:08.00
ネトウヨきもっ、まで読んだ。
787デフォルトの名無しさん:2012/01/14(土) 20:08:47.39
>>784
数当てゲーム
788デフォルトの名無しさん:2012/01/14(土) 20:10:05.26
FizzBuzz
789デフォルトの名無しさん:2012/01/14(土) 20:15:00.00
"自動車 飛行機 三輪車 ナチグロン"と言う文字列から、二つ目の単語の"飛行機"を取り出すには?
790デフォルトの名無しさん:2012/01/14(土) 20:33:10.32
"自動車 飛行機 三輪車 ナチグロン".Split(' ')[1]
791デフォルトの名無しさん:2012/01/14(土) 20:36:49.58
Splitの引数で空白を無視して、インデクサ直打ちじゃなくてSkip&FirstOrDefaultにするとなお良いかも
792デフォルトの名無しさん:2012/01/14(土) 20:42:07.80
>>790
さんくす
793デフォルトの名無しさん:2012/01/14(土) 21:37:43.00
インターフェースでoperator == を使いたいんだけどどうしたらいいですか?
794デフォルトの名無しさん:2012/01/14(土) 21:38:27.90
MicrosoftのWebサイトで、2005年のC#だけどチュートリアルみたいなのがあったのでそれやる。
さんくす
795デフォルトの名無しさん:2012/01/14(土) 21:39:59.97
無理
っていうかイミュータブル(変更不能)でない参照型には==は実装してはいけないお約束
インターフェイスは当然継承可能、すなわちイミュータブルではないので
796デフォルトの名無しさん:2012/01/14(土) 21:44:26.81
>>795
マジですか……

>イミュータブル(変更不能)でない参照型には==実装してはいけない
について、もう少し詳しく教えてください。理由とか
797デフォルトの名無しさん:2012/01/14(土) 21:55:40.09
「純粋にデータを表す型以外には演算子を付けるな」って教訓のちょっとピントはずれな表現だよ
別に行列クラスとかも存在するしケースバイケース

あと演算子オーバーロードが使えないのはインターフェイスにstaticメソッドが定義できないから
798デフォルトの名無しさん:2012/01/14(土) 22:01:11.19
http://msdn.microsoft.com/ja-jp/library/ms173147%28v=VS.90%29.aspx
>変更不可能な型以外で演算子 == をオーバーライドすることはお勧めしません。
理由もちゃんと書いてあるよ
799デフォルトの名無しさん:2012/01/14(土) 22:06:22.82
有効な理由は書いてあるけど、お勧めしない理由ってどこに書いてあるんだこれ。
800デフォルトの名無しさん:2012/01/14(土) 22:09:14.03
明確な理由は書いてないなw

理屈としては、ある時点でa==bが成立しても、知らない間に知らないところで
aまたはbが参照しているオブジェクトの値が変更されてa==bが成立しなくなっている
可能性が生じるから、ということだと思ったが、これって「羹に懲りて〜」そのものだよなw

俺はナンセンスだと思うからこんな忠告は無視してる。
801デフォルトの名無しさん:2012/01/14(土) 22:09:30.45
変更できる型だと常に同じ結果を返さないから、と
Equalsだと許容される理由がよく分からん
802デフォルトの名無しさん:2012/01/14(土) 22:11:03.40
値型だと==を実装しないとパフォーマンスが落ちたり不適切な動作になることがあるけど
参照型の場合は常に==による参照比較は正しく動作するから
わざわざややこしいことしないでEquals使ってろってことじゃないの

ところで>>798の "Equals のオーバーライド" のところのサンプルコードって
Equalsの仕様に違反してね?
対称じゃないだろこれ
803デフォルトの名無しさん:2012/01/14(土) 22:11:14.43
System.Drawingの値型どもの立場はどうなるんだ
804デフォルトの名無しさん:2012/01/14(土) 22:12:37.28
string strの中身が無いことを判断する部分ですが
C#の場合nullと""は区別されるようで、if (str == null || str == "")
と書かなければならないと思いますが||を使わずに一つの式で書く方法があったら教えてください。
805デフォルトの名無しさん:2012/01/14(土) 22:13:41.30
Null合体演算子かString.IsNullOrEmpty
806デフォルトの名無しさん:2012/01/14(土) 22:13:52.81
>>804
String.IsNullOrEmpty
807デフォルトの名無しさん:2012/01/14(土) 22:15:15.45
>>805-806
ありがとうー
808デフォルトの名無しさん:2012/01/14(土) 22:17:56.78
Size「貴様に”ども”などと一括りにされる筋合いはないわ」
809デフォルトの名無しさん:2012/01/14(土) 22:19:17.35
http://msdn.microsoft.com/ja-jp/library/53k8ybth(v=VS.90).aspx
>string 以外の参照型の場合、== では 2 つのオペランドが同じオブジェクトを参照する場合に true が返されます。
マジか、すげー誤解してた。やべぇw
810デフォルトの名無しさん:2012/01/14(土) 22:20:13.20
面白いと思った?
811デフォルトの名無しさん:2012/01/14(土) 22:22:03.28
>>803
値型だから==実装するの推奨

==は値の比較で、もともと参照型の値というのは参照先を指し示す値そのものなわけで
その参照の値とオブジェクトが表す値を区別する必要がない場合(つまりイミュータブル)に限り
==を実装してもいいってことだろ
十分合理的じゃん
812デフォルトの名無しさん:2012/01/14(土) 22:24:11.47
>>811
意味不明。
813デフォルトの名無しさん:2012/01/14(土) 22:27:11.93
そもそも参照等価を==で検査する仕様にしたのが間違いの始まり。
これだけはVBのやり方の方が正しい気がする。
814デフォルトの名無しさん:2012/01/14(土) 22:30:57.35
簡潔に伝えるのは難しい
815デフォルトの名無しさん:2012/01/14(土) 22:34:14.86
==をオーバーロードできるからおかしくなるんであって
Javaみたいに==は常に直接ビット単位の値比較(参照型はハンドル値の比較)を行うという決まりなら
それはそれで一貫してると思う
なるべくその挙動に似せるための制限が「イミュータブルのみ」なんでしょ
816デフォルトの名無しさん:2012/01/14(土) 22:39:54.31
>>815
逆でしょ
==をオーバーロードしなくても使えるから直感に反する変なことになってる。
参照の検査なんて専用の演算子を用意すればよかったのに。
817デフォルトの名無しさん:2012/01/14(土) 22:46:54.80
ポインタだと思えば別に変じゃなくね?
値型に==使うと直接の値比較になるのに
参照型に==使うと勝手に参照外しが行われるというのも変といえば変じゃないか
818デフォルトの名無しさん:2012/01/14(土) 22:55:52.81
Elseは無効だとエラーでた。
なんのこっちゃ?
ちなみに今は魔法使いかどうかを判定するプログラム作ってる。
年齢きいて、
If age >=30だったら「魔法使いです」
Else
「魔法使いじゃない」という使い方をしているんだが・・・

ちなみにVIPのC# wiki
819デフォルトの名無しさん:2012/01/14(土) 22:57:35.30
プログラムの前にコミュ力を勉強すべき
820デフォルトの名無しさん:2012/01/14(土) 22:59:08.79
>>818
if文のソースを全部よこせ
それだけじゃわからん
821デフォルトの名無しさん:2012/01/14(土) 23:03:51.58
Stringの==が文字列比較になるのって演算子オーバーロードじゃなくて言語仕様なんだな
+による連結もそうだけど文字列操作は言語によって違うから
.NETで共通の実装を用意するのは不適切ということなのかな
822デフォルトの名無しさん:2012/01/14(土) 23:05:43.40
小文字で使えよ
823デフォルトの名無しさん:2012/01/14(土) 23:13:13.62
>>820
{
Console.WriteLine("年齢を入力してください");
string age_str = Console.ReadLine();
int age = Convert.ToInt32(age-str);

If(age >=30);
{
Console.WriteLine("あなたは魔法使いです");
}
else;
{
Console.WriteLine("あなたは魔法使いではありません");
}
824デフォルトの名無しさん:2012/01/14(土) 23:14:23.57
else; → else
825デフォルトの名無しさん:2012/01/14(土) 23:15:00.38
If(age >=30); → If(age >=30)
826デフォルトの名無しさん:2012/01/14(土) 23:17:38.32
ありがとう、解決出来た。
でももう一個エラーでてきたよ・・・
「名前'str'は現在のコンテキスト内には存在しません。」
string age_strじゃだめなのかな・・・・
827デフォルトの名無しさん:2012/01/14(土) 23:18:52.60
>>821
http://msdn.microsoft.com/ja-jp/library/ff986396.aspx
他の言語が独自実装を用いていたり、演算子オーバーロードをサポートしてなかったりするだけでしょ
828デフォルトの名無しさん:2012/01/14(土) 23:19:23.20
int age = Convert.ToInt32(age-str);

int age = Convert.ToInt32(age_str);
829デフォルトの名無しさん:2012/01/14(土) 23:20:30.22
>>826
×int age = Convert.ToInt32(age-str);
○int age = Convert.ToInt32(age_str);
830デフォルトの名無しさん:2012/01/14(土) 23:27:03.52
Stringとstringってなにか違うんですか?
831デフォルトの名無しさん:2012/01/14(土) 23:28:07.67
>>828>>829
出来ました!ありがとう
832デフォルトの名無しさん:2012/01/14(土) 23:32:56.75
>>830
string a;
String b;
両方書いてから
using System;
を消して見れ
833デフォルトの名無しさん:2012/01/14(土) 23:33:35.30
>>830
stringはSystem.Stringに対するエイリアスだよ。
System.Stringという.Netの型に対し、stringで呼び出せるようになっている。
言語ごとに型の名前が違ったりするからね。
整数型(System.Int32)なんかは、VBではInteger、C#ではint。
834デフォルトの名無しさん:2012/01/14(土) 23:34:39.48
ったくよけいなことしよってって感じだよなstring

using System;

してんなら、Stringってかきゃぁいいのに、こざかしい
835デフォルトの名無しさん:2012/01/14(土) 23:36:46.80
>>830のような逆に疑問がわくような仕様・工夫?はいらないわ。。
836デフォルトの名無しさん:2012/01/14(土) 23:40:57.98
Shiftを1回休ませてあげようって親切心だよきっと
837デフォルトの名無しさん:2012/01/14(土) 23:41:14.08
組み込み型は小文字で統一してるからだよ
intも無くしてInt32と書くならエイリアス無くてもいいけど
838デフォルトの名無しさん:2012/01/14(土) 23:59:48.20
C++から移植中です。
STLにあるpartial_sortおよびnth_elementと同じ事をC#でやりたいんですが、
なんのメソッドを使えばいいのか教えて下さい。
839デフォルトの名無しさん:2012/01/15(日) 00:06:43.53
items.Skip(start).Take(count).OrderBy(x=>x.Name).ElementAt(i);
startからstart+countまでの間を取り出してNameプロパティでソートしてi番目の要素を取り出す
840デフォルトの名無しさん:2012/01/15(日) 00:06:57.13
移植するくらいならSTLのソース読んで書けばよかろう
841デフォルトの名無しさん:2012/01/15(日) 00:32:55.82
Console.Write("Hell World");
842デフォルトの名無しさん:2012/01/15(日) 00:34:50.60
Console.Write("ばかなのぉ?");
843デフォルトの名無しさん:2012/01/15(日) 00:35:46.16
Console.Write("Hell Sutema World!!");
844デフォルトの名無しさん:2012/01/15(日) 00:36:14.92
string url = "http%253A%252F%252F・・・・となっているurlをhttp://に変換する方法をおちえて
845デフォルトの名無しさん:2012/01/15(日) 00:42:07.59
string url = "http%253A%252F%252F";
url = url.Replace("http%253A%252F%252F", "http://");

プログラミング暦1時間の俺でも分かる余裕
846デフォルトの名無しさん:2012/01/15(日) 00:43:14.87
>>845
お、おぉ。。。。釣りだよね?w
847デフォルトの名無しさん:2012/01/15(日) 00:53:28.22
Uri.UnescapeDataStringを2回かける
でもなんで2回エスケープされてんの?
848デフォルトの名無しさん:2012/01/15(日) 00:57:20.69
おお、できた!イロイロタメシタノニ・・・
すごいなんでわかった?
849デフォルトの名無しさん:2012/01/15(日) 01:02:31.07
System.Web.HttpUtility.UrlDecode(string)
って使うのは非推奨になったんだっけかな
850デフォルトの名無しさん:2012/01/15(日) 01:19:39.52
質問させてください。
Microsoft Visual Studio 2010 Expressを使っています。

アプリに登録したファイル(フルパス)を、ユーザーが拡張子ごとに登録したソフトで開く、
というアプリを作ろうとしています。
例えば、mpg,avi=MPC、jpg,png,bmp=Irfanview、といった風に設定し、
関連づけとは違うソフトでファイルを開きたいときに使うという目的です。

拡張子とツールの設定はユーザーが行うものなのですが、
この設定情報の保存方法がわかりません。
C#だと設定情報はXMLでやるのが普通らしいですが、
どのような形で作成したら良いのか全然わかりません。
(調べてもapp.configのことばかりです。これじゃないですよね?)

これらの方法が分かり易く載っているサイトなどありましたら
教えていただけるとありがたいです。
よろしくお願いします。
851デフォルトの名無しさん:2012/01/15(日) 01:24:44.87
>>850
1. 「拡張子とツールの関連付け」 のコレクションを、プロパティとして持つクラスを作る
2. 1のクラスを、DataContractSerializer等でシリアライズする (シリアライズ先は、その用途ならIsolatedStorageがオススメ)
852850:2012/01/15(日) 01:41:20.14
>>851
ぬおお、難しいw
やっぱりINIファイルのように簡単にはいかないのですね。
わからないことだらけですが、検索したら何件かそれらしいのが引っかかったので、
なんとか調べて頑張ってみます。
ありがとうございました。
853デフォルトの名無しさん:2012/01/15(日) 01:44:33.56
いや、難しくは無いんだが…
汎用的なシリアライズに関しては、>>50辺りを参照
854850:2012/01/15(日) 01:48:30.80
>>853
わざわざご丁寧にありがとうございます。
参考にさせてもらいますね。
855デフォルトの名無しさん:2012/01/15(日) 01:55:08.54
>>851
IsolatedStorageって実際のところどこで管理してるの?
856851:2012/01/15(日) 01:58:54.98
>>855
WinVista以降且つ、Silverlightの場合は
%userProfile%\AppData\LocalLow\Microsoft\Silverlight\is\

.NET Frameworkの場合はどうだか忘れたけど、多分近い場所
WinXPだと、パスが違うかも
MacOS+Silverlightはシラネ
857デフォルトの名無しさん:2012/01/15(日) 02:03:28.42
ごめん調べた、AppDataね。
特殊フォルダと同じように考えておけば良い?
858デフォルトの名無しさん:2012/01/15(日) 02:07:28.52
前に使おうとした事があったんだけど、
アプリ間での共有やアンインストーラからの削除なんかが良く分からなくて止めた経緯があって。
場所さえ分かれば通常のフォルダと同じ操作が出来そうだね。
859デフォルトの名無しさん:2012/01/15(日) 03:33:47.07
%USERPROFILE%\AppData\Local\IsolatedStorage\gqzskxte.kvr\o3n4qmjk.byq\Url.dbu0wb1a0fbn2utt3xb3oi5wi2agm2oq\Url.dbu0wb1a0fbn2utt3xb3oi5wi2agm2oq\Files\TopLevelDirectory

さすがにこんな所に手で弄る可能性のあるファイル置く気にはならない
どうも実行ファイル名をハッシュして場所決めてるみたいで、衝突しそうだし逆算不能っぽいし
860デフォルトの名無しさん:2012/01/15(日) 03:45:59.29
C#でJAVAのThread-run()-start()みたいな投げっぱなしでいいスレッドはどうすればいいの?
861デフォルトの名無しさん:2012/01/15(日) 03:53:54.70
ThreadでもThreadPool.QueueUserWorkItemでもTask.Factory.StartNewでもお好きに
862デフォルトの名無しさん:2012/01/15(日) 03:56:18.64
.NET 4が使えるならTask.Factory.Start推奨。
863デフォルトの名無しさん:2012/01/15(日) 11:17:41.84
>>859
手で弄る必要が無くてもちゃんと削除する手段は提供しないと。
インストーラー配布のClickOnce用という事?
通常アプリで使うなら削除ボタンを用意してやればいいのかな?
使う機会は少なそうだね、
ハッシュじゃバージョンアップできないし・・・
864デフォルトの名無しさん:2012/01/15(日) 12:27:23.71
民主党が惨敗した参院選直前の政党支持率(2010年7月11日投票)

FNN 2010年7月4日
民主党 29.9% 自民党 16.3%
ttp://sankei.jp.msn.com/politics/policy/100706/plc1007060530003-n1.htm
ttp://www.fnn-news.com/archives/yoron/inquiry100705.html

マスコミに、ダマされるなよ。

865デフォルトの名無しさん:2012/01/15(日) 13:07:23.08
ネトウヨきもっ、まで読んだ。
866デフォルトの名無しさん:2012/01/15(日) 13:25:30.41
いちいち呼んでんじゃねえよタンカスが
867デフォルトの名無しさん:2012/01/15(日) 13:32:41.14
OSのフォルダのアイコンとかって自作ツールで使ったらダメですか?
868デフォルトの名無しさん:2012/01/15(日) 13:41:22.34
気にしたことはないが、きっとどこかには書いてあるんだろうな
869デフォルトの名無しさん:2012/01/15(日) 13:43:32.95
埋め込みじゃなくて実行時に取れば問題ないだろきっと
870デフォルトの名無しさん:2012/01/15(日) 13:45:14.96
そやね
871デフォルトの名無しさん:2012/01/15(日) 13:48:11.43
勝手に使ってるフリーソフトは結構あるねw

>>867
Express以外のVSにはちゃんとアイコンライブラリーが付属する。
その中にXPとVistaのアイコンが含まれてたはずだから、それなら使っても問題ないはず。
もちろんそのバージョンのVSを使用権を持ってることが前提だけど
872デフォルトの名無しさん:2012/01/15(日) 14:08:33.84
ま、ライセンスは不明だが、評価版のVSにもアイコンライブラリー付いていたはず(2010は確認していません)
873デフォルトの名無しさん:2012/01/15(日) 14:56:18.23
秒数をmm:ss形式に変換したいのですが
TimeSpan.FromSeconds(sec)とするとhh:mm:ssとなってしまいます
基本的に60分を超えるような場合はこの形式でいいのですが
59分59秒までの場合はmm:ssで表示させたいのですが方法を伝授してください
874デフォルトの名無しさん:2012/01/15(日) 14:59:20.53
TimeSpanのToStringがフォーマット受け付けてくれないので
自分でフォーマットするしかないね

>返される文字列は、"c"形式で書式指定されており、その書式は次のとおりです。
>[-][d.]hh:mm:ss[.fffffff]

「カルチャに依存していません」だから逃げられない。
875デフォルトの名無しさん:2012/01/15(日) 15:01:03.34
情報が古かった
.NET4では書式指定できる

しかし省略可能な書式指定子は無いっぽい
876デフォルトの名無しさん:2012/01/15(日) 15:10:48.84
ないですか
秒からそれぞれの値を計算してフォーマットつくる方式でやってみます
877デフォルトの名無しさん:2012/01/15(日) 15:20:45.12
秒から?
Hoursプロパティ見て"mm:ss"と"hh:mm:ss"を振り分けるだけでよくない?
878デフォルトの名無しさん:2012/01/15(日) 15:29:05.89
listviewで選択されているアイテムがありまして、ボタンを押したら1つ下のアイテムを選択させたいのですがエラーになりました
アドバイスお願いいたします

// 現在選択されているアイテムを取得
int si = listView1.SelectedItems[0].Index;
// 一つカウント
si++;
// 一つ下のアイテムを選択する
listView1.SelectedItems[si].Selected;

エラー内容
割り当て、呼び出し、インクリメント、デクリメント、および新しいオブジェクトの式のみがステートメントとして使用できます。
879デフォルトの名無しさん:2012/01/15(日) 15:34:21.22
hh:mm:ssでとりだして、性器痴漢で尖塔の00:をトリミグカットしてやればいい
880デフォルトの名無しさん:2012/01/15(日) 15:34:59.68
わざと変な変換してるのが相当うざい
881デフォルトの名無しさん:2012/01/15(日) 15:36:27.10
>>877
ググってきてhttp://msdn.microsoft.com/ja-jp/library/1ecy8h51.aspx見ながらやってみたのですが
sec = 123;
if (3600 >= sec) {
span = TimeSpan.FromSeconds(sec).ToString("hh:mm:ss");
} else {
span = new TimeSpan(0, 0, 0, 0, sec).ToString("mm:ss");
}
とやってみたのですが 「入力文字列の形式が正しくありません。」例外が出て出来ません
882デフォルトの名無しさん:2012/01/15(日) 15:37:02.78
コード手入力ミス

sec = 123;
if (3600 >= sec) {
span = TimeSpan.FromSeconds(sec).ToString("hh:mm:ss");
} else {
span = new TimeSpan(sec).ToString("mm:ss");
}
883デフォルトの名無しさん:2012/01/15(日) 15:41:49.44
知らんけど
ListView.SelectedIndexCollection indexes = this.ListView1.SelectedIndices++;
884デフォルトの名無しさん:2012/01/15(日) 15:46:27.10
>>882
俺が作った奴はこうなっていた
aaa.text = new DateTime(0).Add(sec).ToString(@"HH:mm:ss");
885デフォルトの名無しさん:2012/01/15(日) 15:49:55.19
12時間表記か24時間表記かという違い?@って何だろう?どうやって調べたらいいんだろう
886デフォルトの名無しさん:2012/01/15(日) 15:56:19.77
>>885
兎に角TimeSpanの書式指定が上手く行かなかったからDateTime.ToString(fmt)を使ったようだ
詳細はちょっと記憶がない
887デフォルトの名無しさん:2012/01/15(日) 15:56:24.67
>>884
おおおこれで出来ました!
@をつけなくてもエラーは出ませんが何故ここでつけているのでしょうか?
888デフォルトの名無しさん:2012/01/15(日) 15:58:28.57
>>883
演算子 '++' を 'System.Windows.Forms.ListView.SelectedIndexCollection' 型のオペランドに適用することはできません。
889デフォルトの名無しさん:2012/01/15(日) 16:01:58.58
>>887
@を付けた時の俺に聞くしかないが、意味はファイルのパスを表記する時 @"c:\"と書くのと同じだと思うよ
890デフォルトの名無しさん:2012/01/15(日) 16:06:34.21
>>889
勉強になりました
891デフォルトの名無しさん:2012/01/15(日) 16:08:37.20
呼び覚ませ、@を付けた時の俺
892デフォルトの名無しさん:2012/01/15(日) 16:11:20.03
>>878
何がしたいのかようわからんけど、その書き方を踏襲するなら
 // 一つ下のアイテムを選択する
 listView1.Items[si].Selected = true;

じゃねーの?
893デフォルトの名無しさん:2012/01/15(日) 16:15:36.01
@を付けると\がエスケープせずにかけるの。
逆に改行とかがかけなくなるの。
894デフォルトの名無しさん:2012/01/15(日) 16:28:48.54
改行はそのまま改行すればよろしい
895デフォルトの名無しさん:2012/01/15(日) 16:28:56.79
>>892
それでした
trueでした
int si = listView1.SelectedItems[0].Index;
listView1.Items[si].Selected = false;
listView1.Items[++si].Selected = true;
こんな感じで書いてみたんですが、複数行選択されてしまいます
listviewで複数行選択できないプロパティがあるのかなと思いましたがないみたいで困りました
896デフォルトの名無しさん:2012/01/15(日) 16:29:52.98
>>895
MultiSelect あるだろ。
897デフォルトの名無しさん:2012/01/15(日) 16:35:05.75
>>896
ありました。。。。失礼しました
listview 複数行選択 禁止で検索して最初の3ページ目までしか読んでませんでした
898デフォルトの名無しさん:2012/01/15(日) 16:45:45.18
MessageBox.Show("あ\nい");//改行される
MessageBox.Show(@"あ\nい");//\nと表示される
899デフォルトの名無しさん:2012/01/15(日) 16:46:55.42
MessageBox.Show("あ
い");//改行される
900デフォルトの名無しさん:2012/01/15(日) 16:48:03.04
おっとコピペしたままだった
MessageBox.Show(@"あ
い");//改行される
901デフォルトの名無しさん:2012/01/15(日) 16:48:15.55
あい、わかりました
もういいですよ
902デフォルトの名無しさん:2012/01/15(日) 17:26:44.07
数少ない知識をドヤ顔で書いてるんだから、好きにさせてやれや。
903デフォルトの名無しさん:2012/01/15(日) 21:16:25.51
数当てゲームできたはいいけど、乱数分からないので答えをあらかじめ決めてる。
乱数をc#でやるにはどうすればいいの?
904デフォルトの名無しさん:2012/01/15(日) 21:17:03.35
ggrks
905デフォルトの名無しさん:2012/01/15(日) 21:17:31.14
初心者だから調子に乗ってました
ごめんね
906デフォルトの名無しさん:2012/01/15(日) 21:18:11.38
おめーのためにググってやったよカス
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/035random/random.html
907デフォルトの名無しさん:2012/01/15(日) 21:20:33.89
>>906
ありがとう・・・
ごめんね・・・・カスでごめんね・・・・・
908デフォルトの名無しさん:2012/01/15(日) 21:24:25.69
コンピューターは計算して乱数吐き出すんだって。不思議だよね、あらかじめ決められたことをこなす道具なのに、あたかもじぶんで物事を決めているみたいで
909デフォルトの名無しさん:2012/01/15(日) 21:41:50.71
いくらコンピューター様でもユーザーが操作する時刻までは分からんからね
910デフォルトの名無しさん:2012/01/15(日) 21:50:50.93
Z80のRレジスタ思い出した
911デフォルトの名無しさん:2012/01/15(日) 22:50:59.52
MessageBox.Show("既にファイルが存在します。\n上書きしますか?", "確認", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2);

なんで、Showなんでしょう?
なんで、ShowDialogじゃないの? なんか理不尽だわ!と思うのはおかしいことなのでしょうか?
912デフォルトの名無しさん:2012/01/15(日) 22:56:45.37
>なんで、Showなんでしょう?

Dialogとしてしか出せないからサフィックス無駄だと判断されたんじゃないですかね
最終的には命名者に問い合わせしないと断定はできませんが

>なんで、ShowDialogじゃないの? なんか理不尽だわ!と思うのはおかしいことなのでしょうか?

どうでもいいの線引き人によって違いますからね
不快感を与えない範囲なら別によいのではないでしょうか
913デフォルトの名無しさん:2012/01/15(日) 22:57:37.73
>>911
MessageBoxがあなたのいうDialogに相当すると思うので、
この場合は、MessageBoxに対して、Showという動作指示を
だしているということです
なので、MessageBox.Show()で、ShowするのはMessageBoxである
ことが自明なので、MessageBox.ShowDialog()だと、むしろ、
冗長な表現になります

という感じでいかがでしょうか?
914デフォルトの名無しさん:2012/01/15(日) 23:32:24.23
VB6だとモーダルかどうかはShowの引数で変えてたんだけど、
動作が全く違うオーバーロードは良くないってことで.NETでShowDialogになったんじゃなかろうか
915デフォルトの名無しさん:2012/01/15(日) 23:33:42.84
そのくせ
MessageBoxIcon.Exclamation
MessageBoxIcon.Warning
と2つ用意されてるんだよなぁ。そっちのほうが冗長じゃない?
916デフォルトの名無しさん:2012/01/15(日) 23:38:00.12
>>914
そんな教条主義的な理由というより、端的にその方が分かりやすいからでしょきっと。

>>913
それでいいんじゃない?
あと、仮にMessageBox.ShowDialogとした場合、それでも良いとは思うが、
だったらMessageBox.Showもあるのかなという疑問がどうしても出てくる。

っていうか、語学と一緒で、こんなのいちいち何故とか考えずにあるがまま受け入れたほうが
建設的だよ。もっと頭を使うべきことが他に山ほどある
917デフォルトの名無しさん:2012/01/15(日) 23:43:56.08
Microsoft.VisualBasic.Interaction.MsgBox("もっと頭使え");
918デフォルトの名無しさん:2012/01/15(日) 23:45:54.27
C#の乱数の精度ってどのくらいなんですか?
メルセンヌツイスタ?
919デフォルトの名無しさん:2012/01/15(日) 23:52:10.20
インデクサで作った配列もどきを、配列を引数にしているメソッドに渡すことは可能ですか?
FileStreamのReadメソッドの第一引数に、byteで作ったインデクサのクラスのインスタンスを指定したら
byte[]に変換出来ないというエラーが出てしまいました。
920デフォルトの名無しさん:2012/01/15(日) 23:53:26.82
民主党には朝鮮人など外国人のなりすまし、スパイが約90名在籍している
野田内閣は過半数が帰化人

野田はどうだろうか
韓国人から賄賂を貰い、韓国人の集いに出席している野田は

首になった蓮○はシャブで逮捕歴のある人間と仲が良いな。蓮○自身はやってんの?
い-6-1
テレビが言えない民主党のスポンサー=韓国北朝鮮
あとはもうわかるよな

921デフォルトの名無しさん:2012/01/16(月) 00:08:00.14
>>918
あんまり内部がどうなってるかの情報ないような。

メルセンヌツイスターは、C#版のソースコードあるし、気になるようならそれ使えばいいんじゃないかと。
922デフォルトの名無しさん:2012/01/16(月) 00:30:44.96
System.Randomのアルゴリズムはドキュメントに明記されてるだろー
ついでにその解説
ttp://www001.upp.so-net.ne.jp/isaku/rand.html

>>919
できない
923デフォルトの名無しさん:2012/01/16(月) 00:42:36.25
ありがとうございます。
とりあえずReadByteで一個ずつコピーしてみます
924デフォルトの名無しさん:2012/01/16(月) 13:46:56.03
次の変数の値が今の変数の次の数値か判断したいのですが、下記のように記述すると配列の枠を超えてしまうため、エラーになってしまいます。
回避方法はありますでしょうか。

for(i=0;i<num.Length;i++)
{
if(num[i]+1==num[i+1])
}
925デフォルトの名無しさん:2012/01/16(月) 13:49:23.50
for(i=1;i<num.Length;i++) 

if(num[i-1]+1==num[i]) 


かな??
926デフォルトの名無しさん:2012/01/16(月) 14:34:05.52


ステルスマーケティングまとめ
A http://www.dotup.org/uploda/www.dotup.org2522270.png
B http://www.dotup.org/uploda/www.dotup.org2522750.png
 →  ステマの黒幕は ソニー(アニプレックス)、角川

関連キーワード はちま 清水鉄平(はちまの本名) KND 元ソニー会長出井伸之
        はちま管理人によるみかじめ料を払わない特定メーカーへの叩き
        まとめサイトは企業が運営 コメント欄も社員の煽り(が殆ど)
おまけ
2ch監視が仕事のスクウェア社員w↓
96 名前:番組の途中ですがアフィサイトへの転載は禁止です[sage] 投稿日:2012/01/16(月) 12:41:25.60 ID:X9dFbc830
proxy1.square-enix.co.jp - 2012/01/16 12:38:51 - Japan - Commercial(企業)
IP :61.195.58.8 (不明)
Referer :http://ipatukouta.altervista.org/php5/
USER-AGENT :Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)


【株式会社KND・清水鉄平】はちま起稿が特定され黒い関係が明らかに★78【黒幕を特定せよ】
http://awabi.2ch.net/test/read.cgi/poverty/1326691256/
927デフォルトの名無しさん:2012/01/16(月) 14:42:00.71
>>925
この方法も検討したのですが、次の配列が続き番号の場合に処理をしたいことがあり、過ぎてしまうと処理が複雑になってしまうんですよね。
暫定の対処法としては、もう一つifを追加して最終の配列か判断するというものです。
どうもスマートじゃないんですよね。
良い方法ありますでしょうか?
for(i=0;i<num.Length;i++)
{
if(i<num.Length-1)
{
if(num[i]+1==num[i+1])
}
}
928デフォルトの名無しさん:2012/01/16(月) 14:42:58.41
>>924
「次の変数の値」が配列の最後尾の値の場合どうしたいかによる
929デフォルトの名無しさん:2012/01/16(月) 16:34:42.87
string s1="あいうえお";
string s2="かきくけこ";
string s3="さしすせそ";
char[,] c;
s1をchar型2次元配列の1行目に
s2をchar型2次元配列の2行目に
s3をchar型2次元配列の3行目に
代入するにはどうすればいい?
char[0][0]は"あ"
char[1][4]は"こ"
という具合に
930デフォルトの名無しさん:2012/01/16(月) 17:37:24.35
>>924
for(i=0;i<num.Length-1;i++)
{
if(num[i]+1==num[i+1])
}
931デフォルトの名無しさん:2012/01/16(月) 17:50:16.96
>>929
charに全角文字入るか?
とりあえずString.ToCharArray()かAtring.SubString()使ってみれ
932デフォルトの名無しさん:2012/01/16(月) 17:50:20.73
>>929
[][]なのか[,]なのか、代入は初期化時?
933デフォルトの名無しさん:2012/01/16(月) 17:51:17.63
>>929
string≠char[]なのでstringから一文字ずつ取り出して代入する
934デフォルトの名無しさん:2012/01/16(月) 18:19:04.78
再起動、休止、スタンバイ、電源を切るのイベントを受け取ってe.Cansel=trueみたいにすることはできますか?
935デフォルトの名無しさん:2012/01/16(月) 18:28:00.21
WndProcでWM_POWERBROADCAST(0x218)来たら
PBT_APMQUERYSUSPEND(0)をチェックして、
BROADCAST_QUERY_DENY(0x424D5144)をResultに入れるのはどうだろう?
936デフォルトの名無しさん:2012/01/16(月) 18:57:45.71
Vista出た頃から使えなくなって久しいメッセージじゃなかったかなそれは
937デフォルトの名無しさん:2012/01/16(月) 18:59:05.98
この通り
http://msdn.microsoft.com/en-us/library/aa372716.aspx

End of client support > Windows XP
938デフォルトの名無しさん
while(GetMessage())

は流石に見なくなった