[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 05/31 21:09 / Filesize : 92 KB / Number-of Response : 445
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

C#, C♯, C#相談室 Part83



1 名前:デフォルトの名無しさん mailto:sage [2014/04/20(日) 08:07:52.10 ID:tLxbFHYI]
前スレ
C#, C♯, C#相談室 Part82
toro.2ch.net/test/read.cgi/tech/1386763696/

Visual Studio 2010 Express 他
www.visualstudio.com/downloads/

2 名前:デフォルトの名無しさん mailto:sage [2014/04/20(日) 11:53:40.75 ID:X23Clxno]
>>1

> Visual Studio 2010 Express 他

そろそろ 2013 にしてもいいかと

3 名前:デフォルトの名無しさん [2014/04/20(日) 21:32:16.44 ID:ekNgbe08]
初学者はExpress for windows desktopが正解だっけ

4 名前:デフォルトの名無しさん mailto:sage [2014/04/20(日) 22:12:26.60 ID:PF/kKHEc]
>>1

5 名前:デフォルトの名無しさん mailto:sage [2014/04/20(日) 22:30:23.93 ID:NkZ8yLaE]
他って何があるの?

6 名前:デフォルトの名無しさん mailto:sage [2014/04/20(日) 22:35:19.76 ID:pm6pQF/U]
Express For Webの方が段違いに高機能だよ
For Windows Desktopからテンプレートを抜いてExpress For Webで使うのがベスト

7 名前:デフォルトの名無しさん mailto:sage [2014/04/21(月) 00:42:05.10 ID:eYdH8FCu]
ライセンス大丈夫なのそれ

8 名前:デフォルトの名無しさん mailto:sage [2014/04/21(月) 11:09:25.71 ID:RwXDTsmn]
>>6 kwsk

9 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 12:28:30.66 ID:6+D188bl]
桁数が無制限の10進小数BigDecimalクラスを作って
その型をメンバに持つユーザーコントロールを
作ったのですが、プロパティウィンドウで
灰色表示になっていて編集できません。

どのようにすれば、プロパティウィンドウで
通常のdecimalなどと同じように入力できるでしょうか。

10 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 12:43:28.85 ID:XBfi1btF]
TypeConverter実装してStringとの相互変換を書く、だっけ



11 名前:デフォルトの名無しさん [2014/04/22(火) 15:32:26.26 ID:LLIZuTLq]
Windows8.1 UPDATEがリリースされました。
使用メモリが少なくなって1GBメモリのマシンでも動作するようなことが言われています。

アップデート(8 →8.1 →8.1 UPDATE)しようと思いますが、
c#や、.netはきちんと動作してくれるんでしょうか。

試した人います?

12 名前:デフォルトの名無しさん [2014/04/22(火) 15:34:35.91 ID:hiWtVD31]
大丈夫に決まってるだろ・・・

13 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 15:56:53.67 ID:z8WHMXPV]
新らし物好きならば体を張って確かめるべき

14 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 17:58:51.02 ID:UE2PHjX0]
>>11
OSの実装に依存するようなクソなコードじゃなければ動くに決まってるだろ。






というのが建前

15 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 18:04:40.83 ID:z8WHMXPV]
DLLHELLへようこそ

16 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 21:18:01.26 ID:FcSpgIwh]
8系は昔のバージョンが入ってない

17 名前:デフォルトの名無しさん mailto:sage [2014/04/22(火) 23:11:07.13 ID:WX6xzJqE]
旧バージョンも一応入れることも出来るけどね。
まぁ、4.5.1 も互換性あるらしいから一通り動かしてみて
おかしな所を修正するだけでいいんじゃないかと。

18 名前:デフォルトの名無しさん [2014/04/23(水) 19:18:50.80 ID:uDUMTt2m]
>>12-17
レスありがとうございました。

>>17
.net 2から、WINDOWS8の.net 4?に、ASP.NETアプリを移行して困ったことは、
接続文字列を格納したweb.confの要素を読み込むためのクラスが変わっていたことだったな。

Windows 8 も、Windows 8.1 UPDATEも、.net周辺は互換性があるとして、
アップデートやろうかな。でも、テスト環境を用意して、様子を見よう。

19 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 21:09:51.51 ID:8RvEXtF8]
C#は初めてでjavaはそれなりに分かる程度なんですが、
インターフェースを実装した匿名型みたいなのってどう作るのが一般的ですか?
具体的にはSystem.Collections.Generic.IEnumerable<E>を実装したクラスを作りたいのですが、
GetEnumratorはどう実装するのが一般的なのかで戸惑っています。
javaでやった時はreturn new IEnumerator<E>(){...};みたいなのを書いていたのですが、
C#では全然違うやり方するんだろうなと思いつつもググってもみつかりませんでした。

宜しくお願い致します。

20 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 21:12:43.10 ID:9b5aah45]
もうIEnumerable<T>は自前で実装せずyieldで書くわ
インターフェイス一般なら普通にclass内部にネストしたprivate classで書けば良いんじゃね



21 名前:デフォルトの名無しさん [2014/04/23(水) 21:18:29.46 ID:oHxA5I3Z]
インターフェースじゃなくて出来るだけdelegateとラムダ式を使うことやね

22 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 21:28:40.77 ID:Jwmg0nMc]
イベントやラムダがあるからインターフェイスをネストクラスで実装するのは
あんまり必要ないんだよ
というかJavaが異常
ちなみにJavaみたいにネストクラスが暗黙的に外のオブジェクトの参照を持つってのも
C#には無い(C#のネストクラスは全部Javaのstatic class相当)
要らないからね

23 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 21:42:39.32 ID:FOWeiF78]
>Javaが異常
18年かかって反省した結果がSAM(Single abstract method)

24 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 21:52:08.48 ID:Jwmg0nMc]
反省して7年間悩んだ結果が
外のローカル変数を変更できず検査例外と相容れない代物

25 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 22:27:47.84 ID:B15hE1J5]
いい加減検査例外が欠陥品だと認めろ

26 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 22:34:21.45 ID:Jwmg0nMc]
>>25
公式にそう認めたよ
とうとうjava.io.UncheckedIOExceptionが導入された

27 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 22:37:37.71 ID:FOWeiF78]
C#の真似して失敗した劣化版enum
C#の真似して失敗したクロージャもどきのラムダ
C#の真似して失敗した劣化版タイプジェネリクス
C#の真似したboxing
C#の真似した世代別ガベコレ
C#の真似した劣化版デリゲート「SAM」
失敗を認めた検査例外

もうJAVAのライフはゼロ

28 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 22:45:31.11 ID:PHSt4KVS]
C#も最初はJava以下の代物だったのにこんなに立派になって・・・
ここ数年、Javaがパッとしないってのもあるんだけどさ。

29 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 22:51:46.29 ID:qZjbiDWM]
>>28
こんな記事もあったぐらいでそれはない。
www.atmarkit.co.jp/fdotnet/special/java2cs/java2cs_01.html

この記事のコメントで暴れてたJava信者の人今はどうしてるかねw

30 名前:デフォルトの名無しさん mailto:sage [2014/04/23(水) 23:52:36.57 ID:8RvEXtF8]
いや、javaがダメだってのはそれでいいんだけど、
実際delegateとか書くにはどうしたらいいの?
yieldで作ったIEnumerableを再帰したら重すぎたので
用途限定の無限リスト実装クラスを書きたいだけなんだよね。



31 名前:デフォルトの名無しさん [2014/04/23(水) 23:58:41.49 ID:oHxA5I3Z]
yieldで作ったIEnumerableを再帰する ってどんなん?

32 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 00:01:23.94 ID:eSsn4FqQ]
イテレータ―のベストプラクティスはこんな感じ

class Hoge: IEnumerable<T> {
 public struct Enumerator :IEnumerator<T>{}
 public Enumerator GetEnumerator(){ return new Enumerator();}
 IEnumerator<T> IEnumerable<T>.GetEnumerator(){return GetEnumerator();}
}

IEnumeratorの中身が分からんなら諦めて

33 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 00:01:42.26 ID:eeIDhPaJ]
関数型っぽくいくなら
static IEnumerable<object> Infinite() { while (true) yield return default(null); }
var inflist = Infinite().Select(_ => 好きな値());

34 名前:33 mailto:sage [2014/04/24(木) 00:03:22.24 ID:eeIDhPaJ]
default(null)はnullの間違い

35 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 00:14:49.41 ID:BDmsfKX9]
>>31
IEnumerable<T> sample(IEnumerable<T> tailBase)
{
 var e = tailBase;
 while(true)
 {
  var r = e.ElementAt(0);
  e = from v in e where Filter(v) select v;
  yield return r;
 }
}
かなり省いたけど大体こんな感じの。

36 名前:デフォルトの名無しさん [2014/04/24(木) 00:18:00.24 ID:7gol0BjG]
foreach(var item in e)
{
 if(Filter(item)){ yield return item; }
}

じゃダメなの?

37 名前:デフォルトの名無しさん [2014/04/24(木) 00:19:44.03 ID:7gol0BjG]
なんかわけわかんないことかいたな
return e.Where(Filter);

こうか

38 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 00:53:46.66 ID:eeIDhPaJ]
>>35
SelectMany

39 名前:デフォルトの名無しさん [2014/04/24(木) 11:07:28.13 ID:RPJZFTzy]
Windows Live Mail に足りない機能をC#で追加したいと思っています。
そんな組み込みは可能でしょうか?

Windows Live Mail自体がコンパイルされて出来上がった
アプリケーションである以上、そこにC#で新たにプログラムを作って組み込みする方法とか無いのでは?
とも考えています。

40 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 12:39:46.74 ID:efYzmxgq]
1から作った方が早いわな



41 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 12:45:23.88 ID:mnsZs1hI]
そういう奴は「プラグイン(アドイン)追加でxxできます!!」と謳ってるから
まずそこを確認するところから

42 名前:デフォルトの名無しさん [2014/04/24(木) 15:46:36.51 ID:2R+2SMgf]
>>41
プラグイン開発方法とか解説しているサイトの中でオススメはありますか?

43 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 17:53:40.24 ID:YxnFmXEY]
だからそもそもWindows Live Mailがプラグインを、それも.net製のプラグインを使えるアプリケーションなの?って話

44 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 17:56:03.77 ID:tDJuXksa]
Outlookのアドオン市場ってそれなりにあるんでは
個人的に1つ使ってる
外国製で30ドル位だった

45 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 18:01:30.58 ID:qWN4hsJ9]
いろんな本に出てくるマネージヒープってなにもの?

46 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 18:06:32.37 ID:6IsMFN2k]
.NETが管理してるメモリ領域のうち、参照型の実体を置いておく領域

47 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 18:07:22.79 ID:qgz+WFm0]
Outlookの開発はVSにテンプレートがあるほどだしな

48 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 18:11:00.42 ID:qWN4hsJ9]
>>46
じゃあ参照型の変数(ポインタ?といっていいのか?)はどこにあるの?

49 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 18:12:15.63 ID:6IsMFN2k]
ローカル変数ならスタック

50 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 18:16:31.07 ID:qWN4hsJ9]
>>49
ありがとう
じゃクラスのフィールドに参照型が定義されてたら?



51 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 18:18:04.70 ID:6IsMFN2k]
参照型のフィールドは参照型の実体の一部

52 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 18:25:41.81 ID:qWN4hsJ9]
>>51
thx
なんとなくわかった気がする、ありがとー

53 名前:デフォルトの名無しさん [2014/04/24(木) 21:09:08.42 ID:eyNeUV4V]
>>43
サンクス

Windows Live Mailしか使った事がなぃんだけどOutLookと比べてどっちの方が使い勝手が良いですか?
もしOutLookは10年位前に使った事はある程度です。

54 名前:デフォルトの名無しさん mailto:sage [2014/04/24(木) 21:14:01.68 ID:mu7aLjm1]
そりゃもうスレ違いだ ソフトウェア板かどっかに行ってこい

55 名前:デフォルトの名無しさん mailto:sage [2014/04/25(金) 09:26:40.97 ID:IZttWr8m]
使い勝手の良さなんて個人の趣味で変わるしな
あえて言えばテンプレ改良してマイメーラーが最強w

56 名前:デフォルトの名無しさん mailto:sage [2014/04/25(金) 11:24:17.40 ID:ooCgI5xK]
Exchangeで使うなら、言うまでもなくOutlook
Outlook.comで使う場合もOutlookの方がいいと思う
PopやImapでしか接続しないならWindows liveメールの方が手軽でいいかな

57 名前:デフォルトの名無しさん [2014/04/30(水) 18:00:42.73 ID:DNQbhBwD]
www.infoq.com/jp/news/2014/04/roslyn_oss

58 名前:デフォルトの名無しさん mailto:sage [2014/04/30(水) 18:34:06.89 ID:EzgfB9pv]
データーの永続化で一番高速な方法ってなんですか?

59 名前:デフォルトの名無しさん mailto:sage [2014/04/30(水) 18:36:18.93 ID:4l7lcAfF]
君が何を永続化しようとしてるのかによって取れる方法が違うんだから
先にそれを言った方が二度手間にならなくていいぞと忠告してやる

60 名前:デフォルトの名無しさん mailto:sage [2014/04/30(水) 18:43:10.80 ID:EzgfB9pv]
深さが二段階しかないツリーデータです



61 名前:デフォルトの名無しさん mailto:sage [2014/04/30(水) 18:54:33.47 ID:I6H+jm99]
neueとかいうブログの人がシリアライザのパフォーマンス比較の記事を書いてたように思ったが、
まあ気になるなら自分で確認するのが一番だよね。

62 名前:デフォルトの名無しさん mailto:sage [2014/05/03(土) 12:01:57.25 ID:HBcfi/y3]
OWINてどうなの? IIS捨てれるの?

63 名前:デフォルトの名無しさん mailto:sage [2014/05/03(土) 23:34:23.75 ID:oJLHNYzb]
ASP.NETのように、ビハインドでビジネス層のクラスを組み立てながら、
WEBアプリの構築は、JAVA + JSP + サーブレット でもできます。

しかし、ASP.NETのサーバーコントロールのように高度に抽象化されたデザイン用クラスは、
JAVAを使った開発でも最近はあるんでしょうか。

64 名前:デフォルトの名無しさん mailto:sage [2014/05/03(土) 23:38:27.42 ID:oJLHNYzb]
あるいは、ASP.NETのオープンソース版、.NETフレームワークのオープンソース版って、実用的なんでしょうか。
最近では、c#のコンパイラがオープンソース化されたようですけど。
お金のかからない環境を構築したいとおもって。

65 名前:デフォルトの名無しさん mailto:sage [2014/05/03(土) 23:52:34.97 ID:Cu6JPOBx]
>>63
Struts 1のtaglibがそのものなのだが

66 名前:デフォルトの名無しさん mailto:sage [2014/05/03(土) 23:56:18.73 ID:oJLHNYzb]
>>65
本屋でパラパラページをめくりながら探していると、
Structってもはや古い技術だというような記述があったので、意外でした。
taglibは本屋では見つからなかったです。

ちょっと調べてきます。
ありがとうございます!

67 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 02:14:44.21 ID:eMoGcgcA]
どっちもStaticなグローバル変数で持ってますよね、SingletonとStaticの違いってなんですか?って質問されて上手く答えられなかった・・・

68 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 02:40:26.63 ID:dx9xU03u]
Singletonはクラスのアクセスメソッドで制限をかけることができる。
グローバル変数は誰がいつどのタイミングで読み書きするかわからない。

69 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 02:49:01.63 ID:mi+P20vl]
シングルトンは遅延初期化させたい時かな
静的コンストラクタはあまり使いたくない

70 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 06:58:07.82 ID:IPFrsn/P]
静的プロパティだって遅延初期化できるっぺ

C#的にシングルトンって意味あるのかな?
プライベートコンストラクタ書きたいだけちゃうんか



71 名前:5 mailto:sage [2014/05/04(日) 07:13:45.27 ID:q7rdqljv]
>>6

72 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 07:14:36.75 ID:q7rdqljv]
>>65
調べてみたところ、strutsはオワコンでした

73 名前:72 mailto:sage [2014/05/04(日) 07:20:59.25 ID:q7rdqljv]
>>71は間違いです。すみません。

>>65
ASP.NETライクに、抽象化されたUIコンポーネントでwebプログラミングするには、
JAVA標準環境(Java EE 6)+ JFS 2.0 を使うと良いようでした。
お金のかからない世界へ行ってきます。さようなら〜

74 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 07:38:14.97 ID:rJLJvrVe]
破棄して作り直そうとする可能性がある時、静的だとメモリリークの危険が高い

75 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 09:07:48.46 ID:eMoGcgcA]
どっちにしろSingletonは利用者側からすると依存関係がわかりにくくて密結合だから、Singletonで取得するインスタンスを利用して実装しないといけないとマジでイライラするんだよね
とにかくテストがやりづらい

76 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 12:22:07.49 ID:UE0Fc6EI]
グローバル変数的に使おうとするから糞コード量産することになる

77 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 21:50:12.84 ID:F1HNpjLt]
ジェネリックではまっていますが、なにかいい解説書はないですか‥‥

78 名前:デフォルトの名無しさん mailto:sage [2014/05/05(月) 09:40:10.76 ID:SGaFRyg3]
>>77
Javaスレの奴か
ジェネリックな比較はIComparableではなくIComparer<T>を使うべき
それに伴ってstruct制約も不要になる
C#のジェネリックは静的メソッドもクラスの型パラメータを引き継ぐから<S>要らん
https://ideone.com/99dC5f

79 名前: ◆QZaw55cn4c mailto:sage [2014/05/05(月) 15:17:50.63 ID:CN0OEHd5]
>>78
ありがとうございます.無事コンパイルができました.

C#4.0 のオプション引数を使ってみようとしましたが,
public static void insertNode(ref Node<T> root, T key, IComparer<T> cmp = Comparer<T>.Default)
の最後のはコンパイル時定数ではない,とはねられてしまいました‥

80 名前:デフォルトの名無しさん mailto:sage [2014/05/05(月) 15:29:26.22 ID:W0z8fvUt]
「??演算子」の使用例

public static void insertNode(ref Node<T> root, T key, IComparer<T> cmp = null)
{
 cmp = cmp ?? Comparer<T>.Default
 以下略



81 名前:デフォルトの名無しさん mailto:sage [2014/05/05(月) 15:38:16.15 ID:4eyingVq]
>cmp = cmp ?? Comparer<T>.Default

とても頭の悪そうなコードですね
意味を考えたら不適切

82 名前:デフォルトの名無しさん mailto:sage [2014/05/05(月) 15:40:22.59 ID:fN/Sve3O]
>>70
wpfのVMを書くとき、一応4.5はスタティッククラス対応しているがシングルトン使ったほうが何かと便利
4.5以前に作られたライブラリは当然のことながらスタティッククラスのVMに対応していない

83 名前:デフォルトの名無しさん mailto:sage [2014/05/05(月) 15:47:24.88 ID:TyYoKThg]
諦めてオーバーロードをもう一つ書くのがいいんだろうね
でも面倒

84 名前:デフォルトの名無しさん mailto:sage [2014/05/05(月) 16:06:11.24 ID:fN/Sve3O]
あと、スタティッククラスは継承使えないから何かと不便

85 名前:デフォルトの名無しさん mailto:sage [2014/05/05(月) 18:39:14.80 ID:HLVvNfN0]
>>79
それコンパイル時定数なんで、仕様変更考えるならpublicでは使わない方がいいかもね

86 名前:デフォルトの名無しさん mailto:sage [2014/05/05(月) 19:04:06.57 ID:AGglXxAj]
「コンパイル時定数」に単語レベルで反応して「仕様変更」を連想した>>85

87 名前:デフォルトの名無しさん mailto:sage [2014/05/05(月) 21:43:48.00 ID:OT0COKe0]
だらだらとオーバーロードかくよりオプション引数を使ったほうがすっきりするよな

>>81
べつに問題あるとは思えないが

88 名前:デフォルトの名無しさん mailto:sage [2014/05/05(月) 21:52:22.83 ID:fgsSBVMQ]
引数の変更に反応してるのかな?
こういう趣味の問題を所詮趣味の問題だと認識せずに吹っかける奴のが頭悪く見えるけど

89 名前:デフォルトの名無しさん mailto:sage [2014/05/05(月) 22:44:12.82 ID:AY4EFaK1]
オプション変数はなんかのコード分析でお行儀が悪いって言われるらしい

90 名前:デフォルトの名無しさん mailto:sage [2014/05/05(月) 22:58:33.82 ID:SGaFRyg3]
オプション引数はアセンブリパブリックなメソッドに使うとFxCopとVSのコード分析で警告出るよ
定数が呼び出し元にハードコードされてしまうから変更時に呼び出し元を再コンパイルしなきゃいけなくなる



91 名前:デフォルトの名無しさん mailto:sage [2014/05/06(火) 00:09:44.86 ID:e2Zd8aJi]
シングルトンのメリットってどれも弱いよね、オブジェクト指向の利点である再利用できるってメリットを完全に破壊してる

オーバーロードよりオプションが良いか悪いかは問題点がわからないから何とも言えないな
少なくとも全ての基準であるMSのソースではオーバーロードが圧倒的多数だからオーバーロード使う

92 名前:デフォルトの名無しさん mailto:sage [2014/05/06(火) 00:34:48.26 ID:tmSUYm6J]
>>91
シングルトンはインターフェイス経由で使うんだよ
ちょうどComparer<T>.Defaultみたいにな
そうすれば差し替えができて「利用する側の」再利用性が上がる
利用する側のクラスはシングルトンの具象クラスに依存しちゃダメ

93 名前:デフォルトの名無しさん mailto:sage [2014/05/06(火) 00:36:31.71 ID:ug+nXQnt]
オーバーロードだと再コンパイル要らんのか?

94 名前:デフォルトの名無しさん mailto:sage [2014/05/06(火) 00:41:20.84 ID:bRku9hxr]
>>91
>再利用できるってメリットを完全に破壊
んなこたーない。おまえアホか。

>>92
まるでインターフェースにしなきゃ差し替えが出来ないような物言いだな。

95 名前:デフォルトの名無しさん mailto:sage [2014/05/06(火) 00:47:18.77 ID:48oaCWRM]
>>93
3つ前のレスくらい読んだらどうだ?

96 名前:デフォルトの名無しさん [2014/05/06(火) 00:58:35.11 ID:IXzBb183]
>>67からずっと思ってたが、デザパタの用語はだいたいどれもそうだけど、
シングルトンって言葉が指すものの解釈は一つじゃなくていろんなバリエーションがあるから、
どういう意味でシングルトンって言ってるのかはっきりさせないと、傍から見て
ずいぶん頭の悪い奴同士の会話に見えちゃうよ。

97 名前:デフォルトの名無しさん mailto:sage [2014/05/06(火) 01:50:22.83 ID:jzwUbQuH]
そもそもデザインパターンって適材適所で使うアルアルをまとめただけのもんだしな。
それを使わないとダメとかそう言うもんでもないし。
オブジェクト指向がうんたら言う奴ってそこを忘れてルールにはまって自爆してる奴が多い印象。
まぁだから本とかにも何がなんでも型にはめようとするなと冒頭に書かれてるんだろうけど。

98 名前:デフォルトの名無しさん mailto:sage [2014/05/06(火) 01:59:59.48 ID:tmSUYm6J]
デザパタなんて大半はオブジェクト指向の機能を利用したハックだろ
オブジェクト指向というより関数型みたいなことをやろうとしてるものが多い

99 名前:デフォルトの名無しさん mailto:sage [2014/05/06(火) 02:08:17.42 ID:BqjYYF2K]
シングルトンはスタティッククラスで代用できるから、今更面倒なシングルトンを使う必要はないって意見が多かったようだが
一々staticと、すべてのフィールドやメソッドに書くほうが面倒だと思うんだが・・・
それと再利用というならベースクラスを使い回しできるシングルトンのほうが優れているだろ

スタティッククラスの利点は、知らない人に説明するのがシングルトンより楽だぐらいしか思い浮かばん

100 名前:デフォルトの名無しさん [2014/05/06(火) 03:55:27.39 ID:pzJ6+ovS]
staticクラスはどういうクラスなのかがわかりやすいから
「フレームワークがstaticクラスを提供する」みたいなのが主な使用場面じゃね?



101 名前:デフォルトの名無しさん mailto:sage [2014/05/06(火) 04:32:14.78 ID:8bjutxl2]
staticってそのクラス、メソッドだけで自己完結しているって意味合いがあるから
信頼できる関数として利用できる
Singletonをstaticで代用なんてのは本来の使い方じゃない

102 名前:デフォルトの名無しさん mailto:sage [2014/05/06(火) 05:30:07.66 ID:ug+nXQnt]
>>95
それ見て書いてるんだが?

103 名前:デフォルトの名無しさん mailto:sage [2014/05/06(火) 06:40:02.97 ID:UJ0wmmRA]
>>102
おまいは関数の中身を修正したら
呼び出し側の再コンパイルが要ると思ってるのか?

104 名前:デフォルトの名無しさん mailto:sage [2014/05/06(火) 12:23:20.78 ID:5vOxwoqv]
System.Diagnostics.Processが子プロセスを持っているかの判断は出来る?
親プロセスを殺す際に、親プロセスが起動させた不定の子プロセスもまとめて殺したいんだが。

105 名前:デフォルトの名無しさん mailto:sage [2014/05/06(火) 12:36:16.61 ID:q1ZxUZrt]
>>93
要らんね
オプション引数の省略はデフォルト値を渡すようコンパイルされる為、後で変更してもだめ

106 名前:デフォルトの名無しさん mailto:sage [2014/05/06(火) 12:51:46.80 ID:+EFNtusy]
>>103
そりゃそうだな、なんかボケてたわ

107 名前:デフォルトの名無しさん mailto:sage [2014/05/07(水) 08:00:22.27 ID:DJPE+VwE]
其の程度のデメリットならオプション引数使うべきだわ

108 名前:デフォルトの名無しさん mailto:sage [2014/05/07(水) 08:09:39.64 ID:WkJIpITC]
いや1か0かじゃなくてデメリットがある場合だけ使わなきゃいいでしょ
使ってはいけないのはdllのパブリック型のパブリックメンバだけだ

109 名前:デフォルトの名無しさん mailto:sage [2014/05/07(水) 09:43:01.96 ID:9Lrwf94O]
>>104
W32のプロセスに親とか子って概念あるの?

110 名前:デフォルトの名無しさん mailto:sage [2014/05/07(水) 10:04:41.39 ID:MuNUQFgX]
あるよー
ハンドルの継承とかに使われる
タスクマネージャでのプロセスツリーの終了とかもある

ただマネージでは公開されてないんじゃないかなぁ
CreateToolhelp32Snapshot, Process32First, Process32Next関数で親プロセスもとれるみたいだから
プロセス列挙してツリー構築してやればいけるかな



111 名前:デフォルトの名無しさん [2014/05/07(水) 13:27:14.07 ID:7TKwW6oG]
ラムダ式がある現在デザパタを使おうとしてる奴って単に時代遅れ
デザパタありがたがってる奴なんて目も当てられない

112 名前:デフォルトの名無しさん mailto:sage [2014/05/07(水) 14:34:20.95 ID:TQOtgjUI]
オブジェクト指向のそれとは違うだろうけど
ラムダ式にはラムダ式のデザインパターンがあるんじゃねぇの

113 名前:デフォルトの名無しさん [2014/05/07(水) 17:39:53.54 ID:v8XT9GT6]
ラムダ式があっても一部のパターンが使われなくなるだけ
>>111はデザインパターンしらんだろ

114 名前:デフォルトの名無しさん mailto:sage [2014/05/07(水) 17:58:29.45 ID:jRfFl2VD]
プログラマレベル2になったところなんですよ彼は

115 名前:デフォルトの名無しさん mailto:sage [2014/05/07(水) 20:32:56.58 ID:c2xx/D15]
デバッグ時にラムダ含んでるとコード書き換えられないのはどうにかなんないのかな

116 名前:デフォルトの名無しさん mailto:sage [2014/05/07(水) 22:14:53.79 ID:sNbvGfp5]
デバッグ時コード書き換えの必要性を感じないんだけど

117 名前:デフォルトの名無しさん mailto:sage [2014/05/07(水) 23:01:32.27 ID:c2xx/D15]
>>116さんカッケー

118 名前:デフォルトの名無しさん [2014/05/07(水) 23:18:30.74 ID:os5r5Muw]
DataGridView をFormに配置したところデータバインドをしていないにも
関わらず、DataGridView上に1行の何も値の設定されていない行が表示されしまいます。

どうすればデータバインドをするまではこれを非表示にする事が出来ますか?

119 名前:デフォルトの名無しさん mailto:sage [2014/05/07(水) 23:56:51.71 ID:DMZdYPQ9]
>>115
メソッドにすればいい

120 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 00:19:41.92 ID:NDnDtFMt]
shdocvw の参照ってどこから行えば良いのですか?

参照項目より探しているのですが、見当たりません。



121 名前:デフォルトの名無しさん [2014/05/08(木) 00:21:51.27 ID:/gsLR9fm]
Edit&amp;Continue(の事を言ってるんだと思うけど)ってそもそも有効な場面は
かなり限られる気がする。

俺もほとんど必要性を感じたことがないな。

122 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 00:28:46.29 ID:wgDbyxsw]
>>120

【VISUAL STUDIO 2010】USING SHDOCVW; の参照が出来ない場合の対処方法


know-how-tree.com/archives/296

123 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 02:36:19.31 ID:66RGGE3G]
>>118
AllowUserToAddRows = false

124 名前:デフォルトの名無しさん [2014/05/08(木) 03:13:05.77 ID:LX70lqIo]
>>123
サンキュー!

125 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 07:17:26.76 ID:/TlFaqSl]
>>110
遅くなった。Process32Nextとかを調べてみるわ。

126 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 10:04:18.03 ID:4TK84oe8]
>>115
64bit だと常にダメだけどな。
32bit環境でデバッグしてるのか

127 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 10:40:50.38 ID:rM+Ugqpp]
>>126
VS2013から出来るようになった

128 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 10:52:19.49 ID:4TK84oe8]
あ、そうなんだ。
自宅のWindows7に2013入れたけど、メインが2010だから知らなかった、、、
ありがとう

129 名前:デフォルトの名無しさん [2014/05/08(木) 13:56:48.08 ID:jPbn7lXq]
set内で、valueとして渡されたクラスインスタンスのクローンをsetするのって、マナー違反なのかな?

クラスのプロパティにsetしたクラスインスタンスが
外部で書き換えられるのが嫌だからクローンをsetしたいんだけど。

130 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 14:01:57.49 ID:vzTWemg/]
メソッドの方が理解しやすいな



131 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 18:45:29.03 ID:NviPB3le]
普通にアリ
防御的コピーという非常に一般的なテクニック

132 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 20:47:40.52 ID:gk0aEWIW]
>>129
それならその型そのものをイミュータブルにするか値型にすることをまず検討
すべきだと思うけどね。

配列やコレクションは別として。

133 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 21:09:23.08 ID:01rpyJ3E]
配列をプロパティにすること自体が

134 名前:デフォルトの名無しさん [2014/05/08(木) 22:43:47.23 ID:9vcPvL0x]
>>113
デザインパターンっていうのは

Singletonのような本質は何にも変わってないけど通ぶりたいバカがカッコつけて使うものと
ラムダ式でおきかえられるもの
ラムダ式を使って違う形にしたほうが良いもの

の3つに分類できる
つまり今使ったほうがいいものは一つもありゃせん

135 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 22:48:54.86 ID:rRrDSl0D]
おっ、おう

136 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 23:12:07.48 ID:z0nVVjCj]
エースコンバットの嘘字幕かな?

137 名前:デフォルトの名無しさん mailto:sage [2014/05/08(木) 23:16:22.83 ID:GL2M0rb4]
覚えたばかりのものを使ってみたいだけなんじゃない?
たぶんラムダ式もデザインパターンも理解してない。

138 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 00:24:12.10 ID:aGSQbVG9]
ラムダ計算は俺には無理だった

139 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 01:35:48.87 ID:4s2/CMbE]
通ぶりたいバカが語っちゃんてんよ(苦笑)

140 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 03:53:38.78 ID:Wvmtqnkm]
こてっちゃん



141 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 08:46:58.05 ID:Ijv/Ccl+]
>>134
通ぶりたいバカはお前だろww

142 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 19:37:24.31 ID:++5Ylz+V]
メンバー、変数に一々public書くのだるいよう…
省略したらpublicでいいだろこんなもん…

143 名前:デフォルトの名無しさん [2014/05/09(金) 19:38:52.20 ID:E9SfM4pV]
できるだけprivateにしましょうっていうオブジェクト指向の毒が蔓延してたからね

144 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 19:39:54.12 ID:7rX/IBWU]
変数というか、フィールドをpublicにすることなんてないだろ

145 名前:デフォルトの名無しさん [2014/05/09(金) 19:42:43.70 ID:v/oaYztB]
publicにする手間もっと上げたら
まともなコードたくさん生まれるようにならんかな

146 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 19:45:31.17 ID:mXNWQt6t]
プロパティにしてたから助かったなんて状態になるのも
(場合によっては)滅多に無いけど、
公開するのは意識してやりたいからいいんじゃないの。

publicなフィールドやらプロパティやらが多いのは、
大体がカプセル化できてない似非オブジェクト指向。

147 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 19:49:33.08 ID:4s2/CMbE]
まともってどういう観点で?
欠陥が少ないことをまともと評するか
それとも規約をかっちり守っていることをまともと評するか

148 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 19:51:59.12 ID:Ijv/Ccl+]
やっぱ基本はprivateだからな

149 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 20:40:28.22 ID:ogcBElPA]
クソみたいなコードのさらにクソなprivateな部分も公開したいってどんな露出狂だよ

150 名前:デフォルトの名無しさん [2014/05/09(金) 20:45:37.38 ID:E9SfM4pV]
privateなんて公開されてても使わなければいいだけの話だからな
下手なライブラリは公開メンバを少なくしようとして使いにくくなってたり
そもそも出来ないことがあったり目も当てられない



151 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 20:50:03.66 ID:ogcBElPA]
一般的なルールに苦言を呈しちゅうオレかっこいいみたいな感じ?

152 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 20:50:53.52 ID:Mn4+ksrv]
「下手なライブラリ」の本来privateにすべき変数いじるとか怖くてできないんですけど

153 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 20:58:23.84 ID:4s2/CMbE]
誤字ってカッコいいよね
生き急いでる感じがしてさ

154 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 21:29:04.87 ID:eHd2TX5N]
varとdynamicは確実にうんこ

155 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 21:32:51.61 ID:NDcf6f8g]
>>150
これプログラマのバカの壁の一つだが、ダメグラマって本当に君みたいに思ってるらしいな。
こういうセンスの奴がGUIデザインするとButtonやTextBoxが100個とか並んでる画面を
平然と作るんだよね。

156 名前:デフォルトの名無しさん [2014/05/09(金) 21:35:50.04 ID:E9SfM4pV]
var使わずに型名みたいな無意味な情報を一生懸命タイプして可読性下げてる奴って
アホちゃうか? としか思えん

157 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 21:39:42.12 ID:4s2/CMbE]
皆さんなかなか凝った辞世の句を披露なさいますねえ

158 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 22:20:33.56 ID:Ijv/Ccl+]
使わなければいいだけとか…だめだこりゃww

159 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 22:32:44.73 ID:7rX/IBWU]
そんなにつかいたきゃprivateでも無視してアクセスすればいいだろ
わざわざ公開する必要もない

160 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 23:45:48.23 ID:WJR4c6c3]
>>151
えっ、かっこわるい?



161 名前:デフォルトの名無しさん mailto:sage [2014/05/09(金) 23:48:25.77 ID:WJR4c6c3]
>>151
えっ、かっこわるい?

162 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 01:27:17.61 ID:g90VX2nj]
>>156
もう君はVB6でVariantだけ使ってプログラム書いてれば良いんじゃないの?

163 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 01:57:42.12 ID:B1lUTN0m]
なんでvarとVariantが関係あるんだ

164 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 02:43:26.46 ID:omhafWBq]
ラムダ使っちゃっていいの?
どうせFramework2.0で製品化するんでしょ

165 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 03:08:54.91 ID:z3D5bdCD]
バリアント 打てぃ

166 名前:デフォルトの名無しさん [2014/05/10(土) 03:13:52.62 ID:KeiPU5wL]
varはマイクロソフトも推薦してたろ

167 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 08:54:51.34 ID:/Dqge85C]
仕様を理解してないで無視すれば良いとか言ってる奴はいたいな。

168 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 09:52:51.72 ID:hc+7iE7K]
表計算より電卓使うことを強要する老害みたいだな
嫌だねえ、年は取りたくないものだ

169 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 10:13:19.98 ID:hc+7iE7K]
referencesource.microsoft.com/#mscorlib/system/threading/Tasks/Task.cs
ほぼ全て変数宣言はvar使ってますね
boolとList<Task>とExceptionってのが僅かにあるか
アンチvarはReferenceSource読んでるうちに憤死しそうやね

170 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 10:22:53.61 ID:Om1HfajV]
>>162
ひょっとして var で宣言したら Variant みたいになんでも入る変数になると思ってるんじゃ... (w



171 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 10:35:44.40 ID:BTCa0fTB]
えっ違うの?

172 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 10:38:47.96 ID:R5teS7FH]
この話題定期的に出るNe!
ttp://www.atmarkit.co.jp/fdotnet/csharp30/csharp30_03/csharp30_03_01.html

173 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 11:05:02.42 ID:jrUh4jRE]
varはインターフェイスの時に困る

174 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 11:17:14.54 ID:hc+7iE7K]
>>169だって既定型で受けるためにException使ってるし用途次第よ

馬鹿は記憶領域が一つしかないから万能解を求め、臨機応変を考えない

175 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 11:22:46.52 ID:oHlIlrM8]
(゚д゚)ハァ?
明示したいときゃすりゃいいだけの話でございましょう?

176 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 11:41:47.12 ID:R5teS7FH]
>>164
シンタックスシュガー的な機能で実現されてる文法
たとえばラムダ式、var、yieldなんかは
コンパイラが対応してれば対象プラットフォームが2.0でも使える
使えないのはLinqとかdynamicとかawait/asyncとか

177 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 12:00:52.40 ID:Om1HfajV]
>>174
またでかいブーメラン投げたなぁ (w

178 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 13:01:29.64 ID:oljZpcA6]
ま、C++11 でも auto とかあるしねえ

179 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 13:25:05.10 ID:tcPcNt/v]
C++のautoは、ラムダを軽量バインドするときに必要だし、
defaultテンプレートパラメーターを使わないでテンプレートの演算結果を宣言する際に必要だから

180 名前:デフォルトの名無しさん [2014/05/10(土) 14:00:09.11 ID:hS3sE/YA]
型名は本質的な情報じゃないんだよね
変数名こそが本当の情報で
型名は付加情報としても場所を取り過ぎて本質を見えなくするだけ



181 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 14:08:31.12 ID:m/AO6ufT]
>>180
それは実数や整数のように汎用性が高い型の場合にだけ言えること。

182 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 16:09:32.82 ID:70kPlgga]
ハンガリアンバリバリのソースみるとイライラする

183 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 16:18:45.70 ID:70kPlgga]
MSの糞SEが用途間違えたシステムハンガリアンの方な

184 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 18:31:45.83 ID:/Dqge85C]
>>171
C#のvarはコンパイル時に型を推定してくれる。
何でも入るのはdynamic

185 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 19:24:38.38 ID:EnEZoBM+]
varはメンバーフィールドやファンクションの引数・戻値には使えないから
無茶しようと思っても無茶できんな

186 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 19:58:09.90 ID:jrUh4jRE]
dynamicは基本的には使うべきではないだろ

187 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 21:51:23.62 ID:rYs4anx5]
dynamicは引数の型によってオーバーロードを動的に選択させられるのが便利
そもそも型で分岐すること自体クソではあるけど、どうしても仕方ない場合には
if is並べるよりはよっぽどマシだ

188 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 22:02:24.72 ID:a9DcGAOB]
dynamicはExcel制御するとき大活躍だろ?
アーリーバインディングはOfficeのバージョンに依存していかん

189 名前:デフォルトの名無しさん mailto:sage [2014/05/10(土) 22:39:41.83 ID:rYs4anx5]
dynamicが凄いのはCOM Interopに使えたりするのがMSの独自拡張じゃないところ
ちゃんとプロトコルが公開されていて、誰でも独自のオブジェクトシステムを
dynamicで透過的に扱うためのバインダを作れる

190 名前:デフォルトの名無しさん [2014/05/10(土) 23:18:18.72 ID:ryDslySJ]
C#で復興君を作ろうと思っています。



191 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 06:37:11.02 ID:lXX0usu0]
>>187
どの場面でもifやswitchを使わないに越したことはないな。
ちなみに俺がいちばん嫌いなコードは、
if(a==true)
a=false;
else
a=true;

192 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 07:15:58.47 ID:zdamCAAu]
>>191
お前は俺か!
すごく同意できるわ。

193 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 09:09:37.25 ID:r3f59Bax]
>>191
幾ら何でも、そんなコード書く奴居ないだろw

194 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 09:38:55.24 ID:wSEeMjm/]
a=!a で済むもんな

195 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 11:31:48.67 ID:uayAIi6x]
それ以前に{}でくくらないのは嫌いだわー。
そんな事よりコメントも書かずに三項演算子の中に更に三項演算子を複数重ねるのは止めてくれ。
書いてるほうは行数減らせてノリノリで嬉しいんだろうが解読がめんどいわ。

196 名前:デフォルトの名無しさん [2014/05/11(日) 11:40:30.44 ID:qOyx0lRS]
またswitchを見たら仮想関数に書き換えて
可読性や依存関係をメチャクチャにする
オブジェクト指向に洗脳されたカスか

197 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 11:46:08.37 ID:ty2I7rZM]
メソッドへの振り分けは別にオブジェクト指向関係ないだろ
ソースコードのレイアウトの問題に過ぎない
関数ポインタ入れたテーブルで振り分けるとか太古の昔からあるわ

198 名前:デフォルトの名無しさん [2014/05/11(日) 11:48:07.86 ID:qOyx0lRS]
動作を決定する権利がオブジェクトの側にあるか
オブジェクトを使う側にあるのかというのは
本当に決定的な違いなんだよ

そして大半のケースでオブジェクトを使う側にないと柔軟性が確保できない
オブジェクトの側で動作を規定するのは最悪の設計である場合がほとんど

199 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 11:50:35.06 ID:wSEeMjm/]
==true って最悪だよな
boolean値なのにいちいち比較するとか

200 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 11:53:18.60 ID:ty2I7rZM]
>>198
型による分岐をdynamic+オーバーロードに置き換える話なら
制御は使う側にあるだろ
それがいいか悪いかとお前の思想はともかく



201 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 12:09:24.23 ID:9KkBQwht]
>>194
俺はあえて
a ^= true;
と書く

202 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 12:18:23.07 ID:DD3eXZ56]
>>195
三項演算子は lisp は cond 以来の由緒ある書式。

>>196
OOは正義!

203 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 12:43:02.89 ID:zdamCAAu]
>>202
cond は三項に限らんし、中途半端な知識乙

204 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 14:21:05.81 ID:1r+yUbjA]
==true、==falseは見やすさ目的で十分使えるだろ

205 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 14:30:56.81 ID:9KkBQwht]
>>204
それが見やすいと思うなら何か勘違いしてるんだよ。
まあ、hoge == falseは微妙かもしれないが == trueはないね。

206 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 14:31:32.41 ID:eQruSjkp]
==false は頭が疲れた時でもぱっと見でわかりやすいからたまに使う。
==trueはあんま使ったこと

207 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 14:44:15.01 ID:1r+yUbjA]
あー==trueだけの事を言ってたのか

208 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 14:48:01.46 ID:0sJXE8ur]
if ( ( value == 1 ) == false ) {
}

209 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 14:52:01.18 ID:wSEeMjm/]
true は、代入に利用するくらいで等価比較は御法度だよ。
処理系によってはどのビットが立っているかわからないときがあるからね。

210 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 14:54:41.32 ID:mBV2CEmk]
>>209
スレ違いです
労害は去れ



211 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 14:54:41.86 ID:8CXG23Kv]
そんなわけないじゃん

212 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 15:01:00.89 ID:mJ1nU0nf]
>>209
C:値1と定義
C++:true/falseの2値しか取らない
Java:true/falseの2値しか取らない
C#::true/falseの2値しか取らない
Visual Basic 6:ビットがオール1と定義

で どの言語と間違えたの?

213 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 15:01:50.58 ID:Izszoovs]
スレチだけど、C++だと

bool a = ( b == TRUE );

なんて書いたことはあったな。

214 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 15:05:43.80 ID:Tv+UCCd6]
>>213はどうしようもないバカ

215 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 15:12:17.35 ID:DD3eXZ56]
>>212
C/C++ に関していえば、
処理系は必ず true == 1 と扱うが、
ライブラリ関数の中にはそうでないものがある。ctype.h の isalpha() のようなポピュラーなものでさえそうだ。
ctype.h は C++ でも標準ライブラリ扱い

>>209 の C/C++ の項は使い手に即した内容ではない役立たずだね、他は大丈夫なの?

216 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 15:12:24.22 ID:wSEeMjm/]
bool a = b ? true : false ;

217 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 15:20:14.51 ID:wSEeMjm/]
>>212
ある処理系で問題なくても true と比較するコード書く時点でトーシロー

218 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 15:22:52.49 ID:4d9sdM5b]
以下、休日の昼下がりを下らない言葉尻の取り合いでお楽しみ下さい。
なお明日は月曜日ですので、その点ご了承下さいませ。

219 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 15:24:47.77 ID:r0lCuLjc]
==trueが見やすいなんて言っちゃうのは変数名が原因だろ
==falseはアリかな

220 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 15:27:12.37 ID:8CXG23Kv]
>>217
C#ではすべての処理系で問題ない



221 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 15:27:39.25 ID:DD3eXZ56]
>>212
証拠だ、C/C++ の説明は間違っているから書きなおせ
codepad.org/iVjor3ug

222 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 15:28:31.82 ID:03X5e1jP]
なんか始まった

223 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 15:32:38.72 ID:bgvuJmwK]
>>221
intとboolを比較したそらあかんやろ
(bool)isalpha(c) == true
ってせな

(int)trueは間違いなく1

224 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 15:39:58.47 ID:DD3eXZ56]
>>223
codepad.org/GZJDtw7k
それもそだねえ、じゃ

>>212 C の項はかきなおせ、というか C には true/false の二項対立はない。
あと VB あたりもちょっと怖いが、実際どうなんだ?

225 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 15:48:45.26 ID:ttO2ycsK]
んなこたーない
ideone.com/s5pX6s

226 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 15:54:49.57 ID:wSEeMjm/]
ホント馬鹿だな
いちいち型キャストして比較するとかながったらしすぎw

227 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 15:57:44.93 ID:DD3eXZ56]
>>224
そうか、C99 にはブーリアンが入ったんだね、って、予約語としては _Bool じゃなかったっけ?
ideone.com/bfYQxc

C99 strict といいながら srict じゃないね、これは gcc 拡張?

228 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 15:59:34.63 ID:ttO2ycsK]
>>227
_Boolをboolというスペルマで使用できるようにするのがstdbool.h

229 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 16:00:31.04 ID:DD3eXZ56]
>>226
_Bool isalpha(int c) とか変更しなかった/できなかったからね、ま、古い言語だから仕方がない‥

230 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 16:02:36.34 ID:DD3eXZ56]
>>228
thx 確認した



231 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 16:20:10.30 ID:ttO2ycsK]
さて話を戻すと、c#で「==true」が意図しない動作
をすることは一応 無いのだけれど…

232 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 16:37:59.01 ID:wSEeMjm/]
いまは問題なくても後々移植性に問題出たりするんだよ

233 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 16:40:41.81 ID:f0TnWCT6]
>>228
誤変換? ///

234 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 16:54:14.59 ID:uayAIi6x]
相談スレっぽくなくなってしまった。自分も片棒を担いだんだが。

流れを戻すとして、char型をSystem.Windows.Forms.Keysに変換する方法ってある?

235 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 17:22:30.76 ID:8m9s6VXd]
>>232
へー

236 名前:デフォルトの名無しさん [2014/05/11(日) 17:41:37.11 ID:0yrYxZ6d]
移植性を気にする奴がC#とか頭悪すぎw

237 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 17:47:01.65 ID:8CXG23Kv]
>>232
いつだよw
突然仕様変更になるのか?
あんなに破壊的変更嫌って文脈キーワードガンガン増やす言語が

238 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 17:58:08.19 ID:ZXeumQz3]
>>234
char <-> Keysは1対1の対応じゃないから無理じゃないかなぁ
変換テーブルを自分で作っておくしかないと思う

239 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 18:43:26.19 ID:uayAIi6x]
>>238
やっぱり自力でやるしかないか。コードが綺麗じゃないけど仕方が無い。

240 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 19:08:40.28 ID:rIItupz1]
しかし bool? という if(xxx == true) を強要する型があるんだよね



241 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 19:15:41.89 ID:ReOxbOV9]
強要された妄想にとりつかれているんですね
困ったものです

242 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 19:24:20.20 ID:0yv5+mef]
xxx ?? falseでいいんじゃね

243 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 19:31:27.95 ID:+H+hcwQY]
if ( xxx.HasValue && xxx.Value )
だろjk

244 名前:デフォルトの名無しさん mailto:sage [2014/05/11(日) 19:44:28.84 ID:ESdFar+G]
>>239
MSDNによると、

 - Keysの値はWin32の仮想キーコードに対応している
 - ANSI文字の仮想キーコードはANSIコードそのまま

らしいから普通に、
char ⇒ ANSIでデコード ⇒ Keysにキャスト
でいけるんじゃないの?

っていうかVBだとOption Strict Offにしとけば暗黙変換してくれたような気がw

245 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 07:15:26.62 ID:ACtGf3jF]
>>242-243
代用で文字数増やしてどうするんだ

246 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 07:20:25.07 ID:mZu2z8hr]
>>245
文字数が少ない方がいいという前提はどこからきた?

247 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 07:32:31.27 ID:vNBTKcrK]
>>242>>243と書くのは
if(flag == true)と同じぐらい冗長だと思う

248 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 07:42:20.80 ID:vNBTKcrK]
ごめん、ちょっと例えとしてよくなかった
「xxx is SomeType ? (SomeType)xxx : null;」って書くぐらい冗長
って方が俺の言いたいことに近い

249 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 07:50:33.17 ID:b2+C7k5G]
nullならtrueと見做したい場合
!(flag == false), flag ?? true, !flag.HasValue || flag.Value
一貫性を考えたら??一択

250 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 07:51:50.67 ID:zZkIxMS0]
後で解読しやすく書いてくれれば文字数が多くても文句は言わん



251 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 09:44:05.52 ID:3qLmw1Qv]
一文字いくらで金額決めてるんだから一文字でも無駄にするんじゃねーよ

252 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 11:18:53.54 ID:0w5L2iBG]
C++で
union{
bool bl; char ch;
} x;
x.ch = 2;
bool a = x.bl == true;
ってやったらaはtrueにならなかったけど
C#で
[StructLayout(LayoutKind.Explicit)]
struct X{
[FieldOffset(0)] bool bl;
[FieldOffset(0)] byte bt;
}
X x;
x.bt = 2;
bool a = x.bl == true;
てやったらちゃんとaにtureが入ったw

253 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 11:53:52.63 ID:L/eGs81n]
C++にboolなんかあったんだ

254 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 12:01:58.51 ID:hkuqweKu]
asmどうなってる?

255 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 12:11:54.31 ID:qgWJrp5s]
>>252
x.ch=2なんでしょ?
x.bl==1じゃないとtrueにならないの当たり前じゃん

256 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 12:41:13.43 ID:BCJ2/LGP]
bool 知らないとかモグリかよ

257 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 13:36:11.27 ID:8MSpjbBf]
マジレスすると0以外はtrue

258 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 18:16:31.09 ID:1Oc6ahzf]
蒸し返してすまんが>>162はE9SfM4pVの発言に対する皮肉で書いたんだけどさ
勿論知っていると思うけどVariantは見えないだけで中に型情報ある物な訳で
直接型推論するのとコード上の論理的な意味合いはなんら変わらないと思うんだが。

個人的にはvarって最近は使うようにしていてコード量が減るのは確かなんだけど自分で
書いたコードならまだいいんだけども開発環境の支援が無いと読みづらくなることが
多いから手放しに良いものだとは思っていないオールドタイプなんだけど世間一般の
認識はそうでもないのかね?

259 名前:デフォルトの名無しさん [2014/05/12(月) 18:18:04.63 ID:1w9leY4l]
うわあ
何だこのキチガイ怖い

260 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 18:24:32.11 ID:vIiN2rHa]
C#をVisualStudioの支援なしで読むの?



261 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 18:26:54.09 ID:rRKhLlHV]
>>258
> 勿論知っていると思うけどVariantは見えないだけで中に型情報ある物な訳で
> 直接型推論するのとコード上の論理的な意味合いはなんら変わらない

出直してください

262 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 18:49:50.27 ID:1Oc6ahzf]
>>260
GitHubみたいなのでコードレビューとかしたらそうなると思うケド?

>>261
具体的にどの部分に対してのツッコミ?

263 名前:デフォルトの名無しさん [2014/05/12(月) 18:50:10.34 ID:rNMuS3MH]
C#のvarって、別に読みにくくならないと思うが。同じ事を2回書かないで済むようになっているだけって認識だな。

それと、C#のvarとVBのvariantって全然ちがくね。どっちかっていうと、dynamicがvariantに近いよね

264 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 19:01:02.89 ID:lehFDRdw]
varはただの糖衣構文だからね
dynamicは内部的にはObjectって聞いたことあるような気がするけど

265 名前:デフォルトの名無しさん [2014/05/12(月) 19:09:08.86 ID:1w9leY4l]
dynamicは動的言語的な名前でのアクセスを高速にやるために
動的なコード生成的なハックをしてるって聞いたけど

VBはもともと動的言語だからvariantも素直に名前でアクセスしてるだけじゃねえの

266 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 19:09:26.04 ID:/j+EhCNv]
話の流れを読まずにレスすると
>C#のvarとVBのvariantって全然ちがくね

そんなことは みんなわかってる

267 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 19:11:17.79 ID:/j+EhCNv]
>>265
>VBはもともと動的言語
えっ? インターフェースに基づいてメソッド呼び出しする言語なのに?

268 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 19:14:20.20 ID:OiSoC7y/]
>>262
マゾいなぁ
うん、オールドタイプだよあんた

269 名前:デフォルトの名無しさん [2014/05/12(月) 19:16:49.39 ID:1w9leY4l]
いやいやvariantとvarの違いも分かってないキチガイが低レベルなオナニーしてるだけでしょ

270 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 19:17:33.57 ID:1Oc6ahzf]
別に俺もvar=Variantとか主張する気はサラサラない。
使い方として一緒にしちゃってない?って聞いているだけで。

>>265
C++からVariant触ってみればどういう実装かすぐわかるよ。
VBからVariantつついても内部的な型を意識しないとハマるのも一緒。

>>263

var hoge = hogeList.GetNextData();

こんなコード一行見てどんな型か想像つく?

var hoge = new ObservableCollection<string>();

とかなら分かるが。



271 名前:デフォルトの名無しさん [2014/05/12(月) 19:23:06.49 ID:1w9leY4l]
>>270
それはvarが悪いんじゃなくて
hogeという変数名が悪いの

変数名を目立たせるためにvarがある

まあhogeなんて変数名を意図的に付けなければvarを付けて可読性が下がるコードなんて作れないよ

272 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 19:37:37.98 ID:vIiN2rHa]
>>262
ある程度の規模になるとどちらにせよ落として支援つけないときついな
Reference Sourceみたいにメソッドだけでもたどれるとまだマシなんだけど

273 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 19:40:53.44 ID:eFwDCItY]
>>271
それは一般的には話が逆だと思うよ。

一般的にローカル変数については暗号的な名前でも構わないとされているし、
その理由は、それが何者であるかは型と前後の文脈から分かるから。

もちろんvar使ってもVS使う限りインテリセンスで型はわかるし、そうでなくても
メソッド名その他から型がわかるケースも多いけどね。

274 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 19:46:33.94 ID:ACtGf3jF]
vaiantの凶悪なところは a =1 +"1" で aが2になる挙動だわ
せめて入っている型と代入した型が異なったらエラーで止まって欲しい

275 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 19:47:28.93 ID:koOZGk+1]
>一般的にローカル変数については暗号的な名前でも構わないとされているし、

(´・∀・`)ヘー

276 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 19:48:12.33 ID:koOZGk+1]
VariantがクソなんじゃなくてVBがクソということでFAだな

277 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 19:52:28.17 ID:ACtGf3jF]
>>276
アレでも前世代のBasicに比べたらはるかにマシなんだけどね

278 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 21:25:47.98 ID:b2+C7k5G]
Roslynプロジェクトの規約だとvarは原則禁止で
>>270の後者のように右辺に型名がくる場合だけOKだよ
LINQ禁止だしforeachも列挙子が構造体でないものは禁止
さすがにコンパイラだから保守的になるわな

279 名前:デフォルトの名無しさん [2014/05/12(月) 21:47:10.68 ID:oYZZ6D9M]
C#の場合var使ってローカルの変数名もある程度まともにするのが流儀だと思うが
LINQとか何が入ってるのかよーわからんし

280 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 21:50:13.73 ID:1hZHnOd8]
リーダブルコードでは説明的な名前にしろって書いてあったな

暗号ね、どこの一般やら



281 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 21:51:28.22 ID:vNBTKcrK]
Linqのクエリ形式は苦手だなぁ

>>278
>foreachも列挙子が構造体でないものは禁止
これって何を危惧してのことなんだろう?
列挙中にクラスインスタンスの状態が変更されないように、とか?

282 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 21:55:10.30 ID:dBEplP4G]
パフォーマンス

283 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 21:58:44.92 ID:zjVah+tY]
TreeNode _1838e3376;

とか宣言するのか。
目頭が熱くなってきた。

284 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 22:04:22.44 ID:kkPuRxjD]
>>280
リーダブルコードなら、明らかな一時変数ならどうでもいいって書いてあったような

285 名前:デフォルトの名無しさん [2014/05/12(月) 22:05:14.02 ID:1w9leY4l]
>>273
そもそもローカル変数の名前が暗号でいいなんて考えは論外だから
可読性というものを一度でも考えたことがあるならそんな結論にはなりようがない

286 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 22:05:39.18 ID:1hZHnOd8]
>>284
一時変数だと分かればいい、だよ
ようなじゃない

287 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 22:09:44.30 ID:rDnznASh]
暗号的にする意味もわからない。
手作業での難読化を強要されている可能性以外には。

288 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 22:10:26.89 ID:XToYxcYs]
>>285
馬鹿馬鹿しくて反論する気にもなれないが、他人の書いたコード読んだことある?

ローカル変数で説明的な名前が適切なケースももちろんあるが、そちらの方がむしろ例外的。
ローカル変数に説明的な命名をする人なんかいないよ。

289 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 22:12:16.20 ID:dBEplP4G]
俺は納品前に説明的にリファクタリングするけど

290 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 22:12:32.11 ID:6r4KrQ0C]
暗号「的」って暗号使うって意味じゃないでしょ
kbtitとかそんな話でしょ



291 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 22:13:39.55 ID:1hZHnOd8]
なんか話が通じない気がしてきた
こりゃ駄目だわ

292 名前:デフォルトの名無しさん [2014/05/12(月) 22:14:35.51 ID:1w9leY4l]
説明的になりすぎて名前が長くなりすぎるのも好ましくないからな
ひと目で見渡せる範囲で何の処理をしてるか分からないと直感的に読みやすいコードにならないから

型名を分かりやすく短くしたものが変数名になる
っていうパターンが多いね俺は

293 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 22:16:18.20 ID:twKZ90SO]
話題になってるリーダブルコードでは、
タイプ数なんかケチるなよモダンなエディタ使ってんだろ?
って書いてありました。

294 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 22:17:43.69 ID:twKZ90SO]
auは毎回id変わるのか…。
ハゲは変わらなかったのに。

295 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 22:17:48.11 ID:rRKhLlHV]
ANSI Cの関数みたいな感じに短縮した名前ならよく使うけども

296 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 22:18:26.37 ID:XToYxcYs]
>>287
暗号的というのは機能を明示的に表してないという程度の意味だよ。
var fs = new FileStream(path, FileMode.Create)

これをいちいち、

var fileStreamToReadWriteLog = new FileStream(path, FileMode.Create)

なんて説明的な名前を付けるのはダメグラマ。
そんなの前後のコード見ればわかるし、わかるように書けと。

297 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 22:19:25.38 ID:1hZHnOd8]
逆に聞きたいけどそれのどこが「暗号的」なんだ

298 名前:デフォルトの名無しさん [2014/05/12(月) 22:20:33.90 ID:1w9leY4l]
意味の薄いことを長ったらしく書いていいんだとすれば
varを使わず型名をいちいちかけって言うことになる

見るのが大変で直感的にわかりづらい長ったらしいコードになっていいなら
varを使う理由もない

299 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 22:20:54.99 ID:4cnM3h7R]
暗号という言葉が利用されるところで仕事をしたことが無いんじゃないか?
アクロニムって単語が出てこないんだろ。

300 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 22:21:26.99 ID:XToYxcYs]
>>297
君みたいな非常識な奴にとっては違うんだろうねとしか言いようがない。
では何というべきなのか。

こういう場合は暗号的っていう表現を使うんだよ馬鹿。



301 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 22:24:32.30 ID:6r4KrQ0C]
そもそもvarとかうんこって書いたの俺だけどここで話してるようなことについて言ったわけじゃないからな
まぁC#スレはプログラミング言語についての議論できるようなレベルじゃないからいちいちつっこまないけど

302 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 22:24:43.20 ID:XToYxcYs]
>>299
暗号的な命名はいつも頭辞語とは限らない。
じゃあhogeって何の頭文字なのか言ってみな

303 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 22:24:51.83 ID:1hZHnOd8]
普通に頭字語じゃないの
すさまじいねこれは

304 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 22:26:17.71 ID:13D7ee2l]
子供みてえにじゃあじゃあ言い出したな。

305 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 22:27:54.07 ID:6r4KrQ0C]
どっから引用したのか知らんけどそこはどうでもいいよ
単にその言葉の解釈について思ってたのと違ったってだけだから

306 名前:デフォルトの名無しさん [2014/05/12(月) 22:28:19.55 ID:1w9leY4l]
言葉の定義につっかかって本質の議論ができないアスペの集まりか・・・

307 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 22:28:28.33 ID:zZkIxMS0]
1バイトを削るのに命を賭けたり、人生でキーボードを打つ事の出来る回数が決まっている人でも無い限り
変数名は分かりやすくしてクレヨン。
あんま長ったらしいのも問題だけど、変数名や関数名から役割を普通に判断できるくらいにはして欲しい。

>>298
個人的にはvar使わない派。型名を書くことを他人に強制する事までは無いがね。
使わない理由はぱっと見で型が分からないのが嫌いだから。
使うとしてもforeachとかくらいか。

308 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 22:28:34.03 ID:XToYxcYs]
>>304
なるほど、その幼稚な物言いが子供みたいだとは思わないんだ。
馬鹿だろお前。

309 名前:デフォルトの名無しさん [2014/05/12(月) 22:29:37.19 ID:1w9leY4l]
varを使いさえすれば型名がいかに必要のない情報か実感を持ってわかるだろう

食わず嫌いはやめよう

310 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 22:31:20.65 ID:rRKhLlHV]
人格批判が出てきたので
このお祭りもそろそろ終わりですね

俺はごく狭い範囲でしか使わないFileStreamならfsって付けちゃうな
ログを書き出すような寿命の長い変数ならもうちょっと丁寧に付けるが



311 名前:デフォルトの名無しさん [2014/05/12(月) 22:33:18.65 ID:1w9leY4l]
何のファイルのストリームかが自明ならfsでいいと思うけどね

312 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 22:33:45.43 ID:1hZHnOd8]
そもそも説明的な変数名をつけろってのは
スクロールしないと意味を追えない変数は邪魔だってのが本題だから
一時変数は一時変数だと分かればいい=寿命が短いなら寿命が短いことが分かればいい
ってのもそういう意味ですよ誤解しないでね

313 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 22:34:23.64 ID:dBEplP4G]
Streamって大抵の場合コンストラクタやメソッドに突っ込んでおしまいだし、
スコープもusingで明示されることが多いから変数名云々の議論には全く向かないだろ

314 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 23:12:10.79 ID:4a9Ad8ki]
>>300
> こういう場合は暗号的っていう表現を使うんだよ馬鹿。

使わねーよ。
使うと言うならその証拠だしなよ。

315 名前:デフォルトの名無しさん [2014/05/12(月) 23:20:41.55 ID:h67qSrzm]
ArrayList は参照型なのでしょうか?

ArrayList に ref を付けずに外部ファンクションに渡して値を設定しました。
呼出し元で確認すると ref をつけていないにも関わらず値が格納されていました。

316 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 23:22:00.15 ID:b2+C7k5G]
むしろ何故参照型でないと思ったのか
関係ないけどArrayListは過去の遺物だから使うな

317 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 23:36:18.41 ID:XToYxcYs]
>>314
繰り返すが、では何というのか。
いや答えなくていいよ馬鹿。
ja.wikipedia.org/wiki/命名規則_(プログラミング)

こういう馬鹿ってたとえば「教科書的なサンプルコード」って表現を聞いたら教科書に書いてある
サンプルコードのことだとか思うのかね。

あるいは「文芸的プログラミング」って聞いたら文学的味わい(笑)のある人語の文章で
コーディングするとか思うのかね。

義務教育からやりなおした方がいいんじゃないのマジで。

318 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 23:44:24.50 ID:FPCSC9Pj]
歴史の授業よろしく過去の遺物だけ教えて
近現代史まで教えてない義務教育もどうかと思う

319 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 23:57:33.94 ID:4a9Ad8ki]
>>317
根拠として Wikipedia って...
笑いとろうとしてるのか?
マジで、意味はとれなくないけど、スゲー違和感あるし、アホっぽく聞こえるからな他所でしゃべらない方がいいぞ (w

320 名前:デフォルトの名無しさん mailto:sage [2014/05/12(月) 23:59:57.05 ID:dBEplP4G]
普通のWikipedia記事と出典が与太話一カ所にしか付いてない>>317を同列に扱うのはちょっと…
無論全般的にうんこなんだけど



321 名前:デフォルトの名無しさん [2014/05/13(火) 00:05:53.91 ID:1w9leY4l]
細かいことを気にして本質が見れない奴は駄目だ
プログラマはそうなりがちだから注意しろ

322 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 00:10:19.36 ID:OtWszYiC]
リンクはUrlエンコードして貼れとなんども

323 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 00:27:47.73 ID:N+BzxmIn]
>>321
× プログラマ
○ バカ

324 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 01:28:29.43 ID:6lHeR6ab]
>>309
型名が必要ないって全く理解出来ないなぁ。C#で型を意識しないって時点でネタだろ?
そもそも結局変数名短縮して書くとか言っている時点で型を意識してるんじゃないの?
そんな俺俺ルール全開の話展開されてもなんか一人でコード書いている人の
オナニーにしか見えないよ。

多人数で書いていたら命名規則とかをガチガチに決めない限りそんな曖昧な
コードは混乱するだけだし、人のコード読んだり見せたりした事無いんじゃない?
そんな事するくらいなら型名できっちり明示されていた方が間違いないだろ。

varは同じことを二回(宣言と初期化)書かなくていいって程度の話だと思うんだが
それは見通しが良くなるという意味であって型に関して意味が無いという話ではないぞ

325 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 01:59:28.36 ID:VAAeDIGc]
Dictionary<string, Dictionary<int, 自作クラス>>
みたいなの書かなければいけなくなったときに
型名を捨てました。
でも数値は型に関わらずnValueみたいにつけちゃうかも
Numberの意味で

326 名前:デフォルトの名無しさん [2014/05/13(火) 02:06:16.80 ID:SWSrJt6s]
varを使うと、「変数は宣言時に初期化」が強制される
ってのが一番の利点だと思っているんですけど。

327 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 02:24:37.33 ID:nxvHWi8Q]
思ってりゃいいよ。口を開くな。

328 名前:デフォルトの名無しさん [2014/05/13(火) 10:05:01.34 ID:pfvuptpJ]
>>326
このスレでは>>327の意に添わないレスは禁止されている。
以後気をつけなさい。

329 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 12:37:21.47 ID:Q2oZdJZr]
>>324
使うメソッドを持ってれば実行されるから、型なんてどうでも良い。

330 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 12:58:43.04 ID:vRP8IXzs]
>>326
> varを使うと、「変数は宣言時に初期化」が強制される

意味わからん。
var 無くても宣言時に初期化が必要な変数は初期化するし、不要な奴はしない。
なんにも変わらん、ちょっと書き易くなっただけ。



331 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 13:03:36.11 ID:pOysepT3]
昨日から馬鹿が多いな本当。

型なんかどうでもいい、って言ってる奴は、釣りで言ってるのでなければ
1週間後には書いた本人にも理解できないようなコードを書くタイプ。

要するに、今コードを書いている自分の頭に入っているような前提知識を持たない人から
自分のコードが可読的に見えるかどうか、っていう視点が欠如してるタイプ。

そりゃコード書いてる時にはコード上に型が明示されてなくても何も困らないに決まってる。
だってそんなの「今」コードを書いてる自分には自明だからな。

問題は「今」自分が持ってる一時記憶が失われた後でもコードが可読的かどうかのはずなんだが、
ダメグラマってこういう当たり前のことがわからないみたいね。

単にわからないだけじゃなくて、何度それで失敗してもその失敗から学習しない。

332 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 13:03:59.58 ID:Q2oZdJZr]
varは宣言時に代入もしないと、型が判らないからコンパイルエラー

333 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 13:20:44.11 ID:Oq17BpUc]
>>331
昼間から遊んでんなよ

334 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 15:30:35.03 ID:Bi6mCPJj]
宣言時に初期化することがメリットとは思えないなぁ。

他の言語ならともかく、C#ではvarを使わなくても、
初期化されていない可能性のある変数への参照は
コンパイラが警告を出してくれるんだから。

335 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 17:02:03.84 ID:tPkiUW7x]
思わなくていい。糞みたいな口を開くな。

336 名前:デフォルトの名無しさん [2014/05/13(火) 17:07:01.01 ID:+/9sUvLU]
>>331
型なんかどうでもいいって書き込みなんか無いと思います。
プログラムが読めても日本語が読めない人ですか?

337 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 17:15:21.16 ID:2bqSYurQ]
>>336

>>309 型は必要のない情報
>>325 型名は捨てた

ちょっと遡っただけでも二つあるんだけど日本語読めない人ですか?
同じ主張していた人は前にも同様の事を書いていたと思う

338 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 17:56:00.21 ID:RSJvu3WH]
警告じゃなくてコンパイルエラーになるから、そこは間違えようがない

339 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 17:56:15.15 ID:nxvHWi8Q]
うるさい奴だな
規制も解けたし久しぶりに荒らすか

340 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 17:57:23.64 ID:fEA3lkvv]
ばかばっか



341 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 18:03:59.79 ID:FaOmhydn]
玉ねぎテスト

342 名前:デフォルトの名無しさん [2014/05/13(火) 19:04:44.91 ID:P6IZAQAm]
>>337
型は何よりも重要だが型名として明示する必要は無いというだけ
型は論理的な制約としてコンパイラとIDEとプログラマを助けてる

ソースを読むときには意味を追うことが重要であって
型名は意味を表さないからソースに現れる必要はない

343 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 19:10:30.00 ID:I3YIR7QR]
それはシステム型ガリアンがわるいのであって
アプリケーション型ガリアンを使うのが正しい

344 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 20:48:39.72 ID:OtWszYiC]
そもそも.netでハンガリーを使うのは不適切

345 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 21:18:49.26 ID:JYotVS6+]
ハンガリーてw

346 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 21:41:54.30 ID:g7aGY/I9]
予約語varすら不要にはできないのかな
新しい識別子が突然出てきたらそこで型推論して変数定義するだけだと思うのだが

347 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 21:43:10.75 ID:/YCqdFMA]
それなんてブビ6?

348 名前:デフォルトの名無しさん [2014/05/13(火) 21:45:37.20 ID:P6IZAQAm]
変数の定義なのか既存の変数への代入なのかは分からないとダメだろう
間違いの元だし

349 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 21:48:10.21 ID:g7aGY/I9]
>>348
それくらいインテリセンスとシンタックスハイライトで何とでもできそうだけど

350 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 21:49:38.78 ID:2SjFSQn0]
ローカル変数のスコープが絞れない無能言語



351 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 22:08:05.31 ID:RSJvu3WH]
不要にする意味がないじゃん
あとでその上とか、上位スコープに同じ名前の変数定義しても警告がでないとか、スクリプト言語かよ

352 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 22:58:51.07 ID:VAAeDIGc]
紙デバッグする人とIDE活用する人の違いでしょうか

353 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 23:05:11.66 ID:OtWszYiC]
紙でデバッグってどこでビルドするんですか?

354 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 23:06:36.97 ID:6lHeR6ab]
>>352
IDE活用するのは良いんだがそれに依存しちゃってる人って他人とレビューってどうやってやるの?

355 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 23:07:35.77 ID:I3YIR7QR]
最低限の構文要素は残しておかないとソース解析や支援機能が劣化する
ていうか今のものですら不足

356 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 23:08:53.54 ID:2SjFSQn0]
型明示しないとコード読めない奴がレビュアーとか恥ずかしくないの

357 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 23:09:40.76 ID:OtWszYiC]
レビューとか普通にソフトあるだろ
TFSならたしか標準だったはずだし

358 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 23:10:10.27 ID:Gi8jm/Jb]
var程度で劣化するわけないでしょ
リアルタイムのエラー表示とかに比べたら全く完全に無視できる程度の処理

359 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 23:22:12.28 ID:2SjFSQn0]
型推論っていうけど実際には変数型の解決と変換チェックを省いてるわけだからむしろ高速化しそう

360 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 23:35:11.58 ID:ph3+WM+5]
>>355
すみません、劣化の実例出してもらえます?



361 名前:デフォルトの名無しさん mailto:sage [2014/05/13(火) 23:42:10.85 ID:I3YIR7QR]
すまん これからシアトル行きの飛行機に乗らないといけないんだ

362 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 00:44:05.28 ID:eTwx7JM5]
いまだにハンガリアンつかってるのはちょっとイケてないよね

363 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 01:15:52.45 ID:9VDDjOUK]
>>354
他人と一緒にIDE使えばいいんじゃね

364 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 01:17:18.00 ID:OfRhuTl1]
今のトレンドは何リアンですか?

365 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 02:34:49.11 ID:NgeMMujl]
ジャンガリアン

366 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 08:39:58.13 ID:s/uWWHxP]
>>350
絞れるよ。ただ、外側と同じ名前をつけらんないだけ。

367 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 14:25:27.66 ID:d8cAyoWU]
今どきイケてるとか言っちゃうナウでヤングなあなた

368 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 20:16:37.22 ID:eTwx7JM5]
時代はキャメリアンよ

369 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 20:49:19.94 ID:duQE1tkX]
いやポリアンナでしょ

370 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 21:01:07.09 ID:TjISzePW]
>>366
論点理解した上で「絞る」って口語表現の解釈で争うのか?
アスペかゴミかアスペのゴミだな



371 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 21:03:19.94 ID:duQE1tkX]
>>370
どう考えてもお前がアスペ

372 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 22:57:26.14 ID:MatEjgRk]
>>364
コリアンと言ってほしいんだろ?

373 名前:デフォルトの名無しさん [2014/05/14(水) 23:10:26.66 ID:hc7I7FLC]
C# でフラッシュ上に描画されているボタンのクリックをする事は出来ますか?

例)
YouTubeの 再生ボタン 

374 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 23:28:08.62 ID:OXjgNqNn]
まっとうな方法はない
できないことはないけど非常に難しく、およそ初心者向きの課題ではない

375 名前:デフォルトの名無しさん mailto:sage [2014/05/14(水) 23:30:16.49 ID:CNlUMUNV]
UWSCさんにお任せした方がお手軽
どうせお手軽に稼ぐ手段にしか興味ないんでしょ?

376 名前:デフォルトの名無しさん mailto:sage [2014/05/15(木) 02:37:17.33 ID:y4EzsQr3]
4.5.1時点では各種コレクションやカスタマイズならIEnumerable<T>やIEnumerator<T>があるからインデクサ実装するメリットがパッと思いつかないな
逆にどういう時にあえてクラスにインデクサ実装するの?

377 名前:デフォルトの名無しさん [2014/05/15(木) 05:43:37.91 ID:VFnGSa+C]
>>376
たしか、ElementAtはIListを実装していないクラスの場合、
インデクサを使わず先頭から一つずつ数えるとか聞いた

ともかくElementAtは効率的である保証がないから
ランダムアクセスが早いクラスではインデクサを実装したほうがいい

378 名前:デフォルトの名無しさん mailto:sage [2014/05/15(木) 06:46:00.89 ID:vWmJlxXD]
ディクショナリとか多次元コレクションとか

379 名前:デフォルトの名無しさん mailto:sage [2014/05/15(木) 06:50:35.28 ID:PJUn3sxK]
二次元幼女のコレクションか。納得。

380 名前:デフォルトの名無しさん [2014/05/15(木) 15:32:47.39 ID:hK9NRk/t]
>>375
UWSC って何?



381 名前:デフォルトの名無しさん mailto:sage [2014/05/15(木) 15:49:09.11 ID:UhbfTRYa]
>>380
ググったら一発で出てくるんだが

382 名前:デフォルトの名無しさん [2014/05/15(木) 15:57:34.47 ID:hK9NRk/t]
じゃ、ぐぐって

383 名前:デフォルトの名無しさん mailto:sage [2014/05/15(木) 18:09:38.25 ID:6iCpTi+Y]
ぐぐりました

384 名前:デフォルトの名無しさん [2014/05/15(木) 21:16:35.16 ID:VVboE5kT]
おれもググった

385 名前:デフォルトの名無しさん mailto:sage [2014/05/15(木) 21:33:42.13 ID:t3vABwGH]
ぐぐってきた、なるほどね

386 名前:デフォルトの名無しさん mailto:sage [2014/05/15(木) 21:34:05.58 ID:fEMnGPTM]
ぐぐってあげたよ

387 名前:デフォルトの名無しさん mailto:sage [2014/05/15(木) 21:55:32.39 ID:/wvFfuuf]
百度でも可

388 名前:デフォルトの名無しさん mailto:sage [2014/05/15(木) 21:59:03.97 ID:vWmJlxXD]
優しい世界

389 名前:デフォルトの名無しさん mailto:sage [2014/05/16(金) 18:40:47.57 ID:VAV/Ywcf]
Usage of NativeWindow.AssignHandle/ReleaseHandle when unmanaged code is involved.
blogs.msdn.com/b/anandgeorge/archive/2010/04/11/usage-of-nativewindow-assignhandle-releasehandle-when-unmanaged-code-is-involved.aspx

NativeWindowまわりで不可解なクラッシュが発生するんだけど
これ試してみようかな

390 名前:デフォルトの名無しさん [2014/05/17(土) 16:30:44.41 ID:QUUNT5cx]
福島ヤクザの恫喝のお蔭で美味しんぼが休載になってしまった・・・



そ ん な に 福 島 県 の  野 菜 が 安  全 ・安 心

    と い う な ら ば 宮 内 庁 職 員 ・ 天 皇 家 に 全 て 無 料 で 提 供 し な さ い



391 名前:デフォルトの名無しさん mailto:sage [2014/05/17(土) 16:40:04.62 ID:/wPndJU8]
コピペマン参上!まで読んだ。

392 名前:デフォルトの名無しさん mailto:sage [2014/05/17(土) 21:01:02.22 ID:Ii5h3iYQ]
そんな事よりkeybd_eventで記号が送れないじゃないか。
入力対象がPostMessageは受け付けないしSendInputは動かないし困った。

393 名前:デフォルトの名無しさん mailto:sage [2014/05/17(土) 21:10:07.58 ID:pDUyUp0N]
UIAutomationは?

394 名前:デフォルトの名無しさん mailto:sage [2014/05/17(土) 22:17:04.68 ID:Ii5h3iYQ]
>>393
聞いたこと無かった。試してみるわ。

395 名前:デフォルトの名無しさん [2014/05/18(日) 03:17:11.65 ID:fAlXIwAd]
以下のコードを書いているのですが #1 の部分でたまにブラウザが閉じない場合があります。
何が原因なのでしょうか?

きっちりと閉じる時は閉じますが、たまに閉じない場合があるのです。
その為現在は、 iexplorerのプロセスをむりくり消すという方法を行っています。

SHDocVw.InternetExplorer ie;
mshtml.IHTMLElementCollection mshtml_ec;
do
{
  url = "maxnko.com";
  ie = new SHDocVw.InternetExplorer();
  ie.Navigate(url, null, null, null, null);
  
  ie.Quit(); ← #1
}while(true);

396 名前:デフォルトの名無しさん mailto:sage [2014/05/18(日) 04:22:37.98 ID:gCeF58LB]
アウトオブプロセスのCOMサーバプロセスのサーバの寿命が気になるなら
・途中で手に入ったCOMオブジェクトすべてにMarshal.ReleaseComObject
・COMオブジェクト入れてた変数は全部参照を切ってGC.Collect×2
のどっちかが必要

397 名前:デフォルトの名無しさん mailto:sage [2014/05/18(日) 06:27:29.62 ID:y6C+E1dN]
WaitForPendingFinalizersとSleepも入れとけ
bbs.wankuma.com/index.cgi?mode=al2&namber=35188&KLOG=61

398 名前:デフォルトの名無しさん [2014/05/18(日) 11:55:53.57 ID:0kvX68pZ]
maguro.2ch.net/test/read.cgi/pc2nanmin/1372918692/145
  ↑ ↑ ↑  ↑ ↑ ↑

399 名前:デフォルトの名無しさん [2014/05/18(日) 17:55:09.18 ID:KNbj8c8D]
超初歩で申し訳ないのですが

string[,] hoge = {{"a","b","c"},{"a","b","c"}};
のような多次元配列があるとして

string[] test = hoge[0];
みたいに配列を取り出して渡すのはどうしたらいいですか?エラーがでます。

400 名前:デフォルトの名無しさん mailto:sage [2014/05/18(日) 18:14:59.78 ID:5sxTIiRh]
これで我慢しろ
string[][] hoge = { new[] { "a", "b", "c" }, new[] { "x", "y", "z" } };
string[] test = hoge[0];



401 名前:デフォルトの名無しさん mailto:sage [2014/05/18(日) 18:44:56.99 ID:KNbj8c8D]
ありがとうござます・・
色々な宣言方法があるんですね。

402 名前:デフォルトの名無しさん mailto:sage [2014/05/18(日) 18:54:58.24 ID:VTr3IL1L]
多次元配列 string[,] と ジャグ配列(配列の配列) string[][] は別物なんよ

403 名前:デフォルトの名無しさん mailto:sage [2014/05/18(日) 20:55:49.12 ID:eK7aomfp]
インデクサで実装

404 名前:デフォルトの名無しさん mailto:sage [2014/05/19(月) 01:44:57.19 ID:iSQonB5j]
string[] test = new string[6];
test[0]=hoge[0,0];

405 名前:デフォルトの名無しさん mailto:sage [2014/05/20(火) 22:50:10.77 ID:egyHbNr6]
System.Collections.Specialized.OrderedDictionaryが使いづらいから
genericなOrderedDictionaryを自作しようと思ったら糞面倒臭くてワロタ。
みんなどうしてるんだ?

406 名前:デフォルトの名無しさん mailto:sage [2014/05/20(火) 23:14:18.45 ID:z25AfSXU]
内部にList<T>とDictionary<TKey, TValue>を持つクラスを作った。

407 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 03:32:42.40 ID:v/AOEN1J]
OrderedDictionary ってなんのために使うの?
Dictionary の中身のソートならLINQですましているけど、、、

408 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 12:09:03.26 ID:HVPC3tHt]
互換性のために残してるんだろ。
ジェネリック版がないのがその証拠。

409 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 17:10:09.90 ID:mq1dIck6]
>>396
>アウトオブプロセス
あうと・おぶ・プロセス?

410 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 19:03:42.30 ID:ejLigrZg]
そうよ。別プロセスとして起動したCOMサーバのこと。

対になる言葉もちろんin-process server.
自プロセス内でアクティベートされたCOMサーバーオブジェクトよ



411 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 19:25:24.07 ID:bWXCPWXI]
WPFのDataGridで、どの列が画面内に表示されているかを知る方法をご存知の方いらっしゃいませんか。

広いDataGridの各セルに値を表示していて、一定間隔で表示を更新しているのだけど、
表示更新を行うのを画面内に表示されている範囲だけにしたくて、現在表示されている列を知りたいのです。
どの行が表示されるかは、DataGrid.LoadingRow/UnloadingRowイベントで簡単にわかるんだけど、
列に関してはこれに類似する便利なイベントなどが見つからなくて、悩んでいます。

ScrollChangedイベントが発生した時に各列の位置を計算して、
表示されている範囲内に収まっているかを確認するという方法を考えたんだけど、
「表示されている範囲」を取得する方法がわからず、実現できるかどうか・・・

詳しい方、知恵を貸していただけませんでしょうか。

412 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 19:35:47.40 ID:vOQNrfJU]
VisualTreeHelperとかじゃねえの
もっと直接的な方法があるかもしれんが

413 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 20:51:40.21 ID:eQl8Z8s/]
>>411
普通にバインドしてりゃそれくらいは自動でやってくれてるぞ
それでもDataGridの糞性能はどうしようもないから、
諦めてWindowsFormsHostでDataGridViewを使うのが吉

414 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 22:08:50.68 ID:bWXCPWXI]
>>412
VisualTreeHelperですか・・・
使ったことないので、調べてみます。

>>413
ありがとうございます。
表示更新以外にも内部的にやりたいことがあって、表示されている列をなんとかして取得したいと考えています。
やっぱりWPFのDataGridは使えないのですね・・・DataGridViewの便利さが身にしみます。
今回すでにDataGridが用意されている中での改造をやろうとしていて、WindowsFormsHostを使うことができないので、
WPFの範囲でなんとかできる方法をもう少し試行錯誤したいと思います。

415 名前:デフォルトの名無しさん [2014/05/26(月) 11:41:59.18 ID:C5RAjArj]
C#で
Process.Kill("explorer");

Process.Start("explorer");


を実行するとエクスプローラーが起動しますが
自動でこれを閉じる方法はありませんか?

※エクスプローラを一定周期で再起動させたいです。
PCを付けっぱなしだとexplorerの調子が悪くなってしまう場合がある為です。

416 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 11:50:26.53 ID:QBzBPwJ7]
閉じる?

417 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 11:51:08.04 ID:fNjo4Ias]
var exp = Process.Start("explorer");
// 一定時間待つ
exp.Kill();

418 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 11:55:08.95 ID:82lch4Bs]
ウイルス系に感染してるんじゃない?

419 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 12:27:40.15 ID:dlApJPlM]
普通不安定になるならエクスプローラだけ再起動してもダメだろ
PC再起動しろよ

420 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 12:54:20.63 ID:DINwIwST]
とゆうかエクスプローラはタスクバーでも使ってるから通知領域がおかしくなるぞ
418の言う通りウイルス疑うべき



421 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 12:57:00.00 ID:ptXAqcmg]
OneDrive(SkyDrive) とか GoogleDrive 止めたら安定したことがある

422 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 13:12:12.75 ID:lvFZnHPn]
ウィンドウを出してタスクバーに登録するあたりがおかしいんだよなw

423 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 13:24:37.36 ID:yHJImmyi]
丸投げ姿勢で常駐系に手を伸ばすなんてろくな事にならん
身の程知らずというものよ

424 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 13:34:07.02 ID:82lch4Bs]
>>421
どっちも使ったことないから知らんが、その系統ならオーバーレイアイコンの問題じゃないかな

425 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 14:00:32.79 ID:yHJImmyi]
そう言えば TortoiseSVN のアイコン処理がいろいろ悪さすることがあると最近知ったな

426 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 14:40:35.43 ID:2JzRM12h]
TortoiseGit でもアイコンのせいで超重くなるな

427 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 14:43:51.58 ID:2JzRM12h]
>>415 >>417
PC を長時間ログインしたままで使う人は explorer を時々再起動した方が良いのは賛成なんだが
explorer をいくつも開いてると復元が面倒なんでついつい致命的に死ぬまでそのまま使う

あと explorer の再起動はすべての explorer プロセスを列挙して全部殺して
最後の一つがタスクバーになるようにする必要があるのかな

428 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 15:32:52.83 ID:EGdbrytd]
explorerってタスクマネージャーでプロセス消したら勝手に立ち上がってくるよな
あれはタスクマネージャー側で再起動してる?OS側?

429 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 16:02:51.07 ID:2JzRM12h]
完全に消滅させられるけど?

430 名前:デフォルトの名無しさん mailto:sage [2014/05/26(月) 16:10:27.65 ID:kDM+Ms7r]
あいつは完全に消滅した



431 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 00:54:38.03 ID:RQKxbKNp]
>>425
あれのせいで作業遅れたことあるわ
インシデント登録のために再現しようとしたら再現しなくてなんだかんだ悩んで時間無駄にした

432 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 09:50:05.50 ID:ukhP0HT2]
完全に消滅させるとタスクバーもいなくなるので
コマンド起動ですぐたちあげちゃうよな

433 名前:デフォルトの名無しさん mailto:sage [2014/05/27(火) 10:54:06.71 ID:Oftvh7Y1]
デスクトップにフォーカスがある状態でAlt+F4

ダイアログが出たら Ctrl + Shift + Alt + Esc 同時押し

(゚д゚)ウマー

434 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 03:17:16.11 ID:7s/YdHrO]
>>428
unix でいうところのシェルと同等だからね

435 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 04:37:57.28 ID:hRiIfaso]
シェルって勝手に再起動したっけ?

436 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 06:32:42.47 ID:r/cEnKci]
ウィルスの仕業じゃ

437 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 08:21:07.64 ID:pSqJyVpX]
Windows XP SP2以降、再起動してくれることが多くなった

438 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 10:34:03.90 ID:o+iely1Y]
落ちたら再起動するってオプションと
外から殺されたらそのまま死んでる
って違いでしょ

439 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 10:41:47.46 ID:EmUl6u0+]
そんな設定あったのか。OSでの挙動の違いかと思ってた

440 名前:デフォルトの名無しさん mailto:sage [2014/05/28(水) 12:13:44.09 ID:mw4ldslt]
フォルダとデスクトップを別プロセスにする設定にしてて
タスクバーのプロセスが死んだときに
フォルダのプロセスが残ってると
タスクバーのプロセスは自動復活しない



441 名前:デフォルトの名無しさん mailto:sage [2014/05/31(土) 08:17:04.13 ID:IL91pjst]
C# は、改行のエスケープシーケンス効くのか?
string text = "Hello \
world" ;

442 名前:デフォルトの名無しさん mailto:sage [2014/05/31(土) 08:29:51.35 ID:gddrhR3Z]
>>441
ソース通り文字列に改行が入っていいなら@を使う。
文字列に改行を入れたくないなら複数行に分けて書くのは無理。必要なら+で繋ぐ。
その場合もちろん最適化は効くからパフォーマンスへの影響はない。

443 名前:デフォルトの名無しさん mailto:sage [2014/05/31(土) 15:54:04.89 ID:QHlXh24u]
そんなのちょっとやってみりゃ分かるだろうに

444 名前:デフォルトの名無しさん mailto:sage [2014/05/31(土) 16:29:13.74 ID:PaG8/Dzb]
馬鹿はプログラミングに向かない典型だな






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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