>>1 乙
> Visual Studio 2010 Express 他
そろそろ 2013 にしてもいいかと
3 :
デフォルトの名無しさん:2014/04/20(日) 21:32:16.44 ID:ekNgbe08
初学者はExpress for windows desktopが正解だっけ
他って何があるの?
Express For Webの方が段違いに高機能だよ
For Windows Desktopからテンプレートを抜いてExpress For Webで使うのがベスト
ライセンス大丈夫なのそれ
桁数が無制限の10進小数BigDecimalクラスを作って
その型をメンバに持つユーザーコントロールを
作ったのですが、プロパティウィンドウで
灰色表示になっていて編集できません。
どのようにすれば、プロパティウィンドウで
通常のdecimalなどと同じように入力できるでしょうか。
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
大丈夫に決まってるだろ・・・
新らし物好きならば体を張って確かめるべき
>>11 OSの実装に依存するようなクソなコードじゃなければ動くに決まってるだろ。
というのが建前
DLLHELLへようこそ
8系は昔のバージョンが入ってない
旧バージョンも一応入れることも出来るけどね。
まぁ、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周辺は互換性があるとして、
アップデートやろうかな。でも、テスト環境を用意して、様子を見よう。
C#は初めてでjavaはそれなりに分かる程度なんですが、
インターフェースを実装した匿名型みたいなのってどう作るのが一般的ですか?
具体的にはSystem.Collections.Generic.IEnumerable<E>を実装したクラスを作りたいのですが、
GetEnumratorはどう実装するのが一般的なのかで戸惑っています。
javaでやった時はreturn new IEnumerator<E>(){...};みたいなのを書いていたのですが、
C#では全然違うやり方するんだろうなと思いつつもググってもみつかりませんでした。
宜しくお願い致します。
もうIEnumerable<T>は自前で実装せずyieldで書くわ
インターフェイス一般なら普通にclass内部にネストしたprivate classで書けば良いんじゃね
21 :
デフォルトの名無しさん:2014/04/23(水) 21:18:29.46 ID:oHxA5I3Z
インターフェースじゃなくて出来るだけdelegateとラムダ式を使うことやね
イベントやラムダがあるからインターフェイスをネストクラスで実装するのは
あんまり必要ないんだよ
というかJavaが異常
ちなみにJavaみたいにネストクラスが暗黙的に外のオブジェクトの参照を持つってのも
C#には無い(C#のネストクラスは全部Javaのstatic class相当)
要らないからね
>Javaが異常
18年かかって反省した結果がSAM(Single abstract method)
反省して7年間悩んだ結果が
外のローカル変数を変更できず検査例外と相容れない代物
いい加減検査例外が欠陥品だと認めろ
>>25 公式にそう認めたよ
とうとうjava.io.UncheckedIOExceptionが導入された
C#の真似して失敗した劣化版enum
C#の真似して失敗したクロージャもどきのラムダ
C#の真似して失敗した劣化版タイプジェネリクス
C#の真似したboxing
C#の真似した世代別ガベコレ
C#の真似した劣化版デリゲート「SAM」
失敗を認めた検査例外
もうJAVAのライフはゼロ
C#も最初はJava以下の代物だったのにこんなに立派になって・・・
ここ数年、Javaがパッとしないってのもあるんだけどさ。
いや、javaがダメだってのはそれでいいんだけど、
実際delegateとか書くにはどうしたらいいの?
yieldで作ったIEnumerableを再帰したら重すぎたので
用途限定の無限リスト実装クラスを書きたいだけなんだよね。
31 :
デフォルトの名無しさん:2014/04/23(水) 23:58:41.49 ID:oHxA5I3Z
yieldで作ったIEnumerableを再帰する ってどんなん?
イテレータ―のベストプラクティスはこんな感じ
class Hoge: IEnumerable<T> {
public struct Enumerator :IEnumerator<T>{}
public Enumerator GetEnumerator(){ return new Enumerator();}
IEnumerator<T> IEnumerable<T>.GetEnumerator(){return GetEnumerator();}
}
IEnumeratorの中身が分からんなら諦めて
関数型っぽくいくなら
static IEnumerable<object> Infinite() { while (true) yield return default(null); }
var inflist = Infinite().Select(_ => 好きな値());
34 :
33:2014/04/24(木) 00:03:22.24 ID:eeIDhPaJ
default(null)はnullの間違い
>>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);
こうか
39 :
デフォルトの名無しさん:2014/04/24(木) 11:07:28.13 ID:RPJZFTzy
Windows Live Mail に足りない機能をC#で追加したいと思っています。
そんな組み込みは可能でしょうか?
Windows Live Mail自体がコンパイルされて出来上がった
アプリケーションである以上、そこにC#で新たにプログラムを作って組み込みする方法とか無いのでは?
とも考えています。
1から作った方が早いわな
そういう奴は「プラグイン(アドイン)追加でxxできます!!」と謳ってるから
まずそこを確認するところから
42 :
デフォルトの名無しさん:2014/04/24(木) 15:46:36.51 ID:2R+2SMgf
>>41 プラグイン開発方法とか解説しているサイトの中でオススメはありますか?
だからそもそもWindows Live Mailがプラグインを、それも.net製のプラグインを使えるアプリケーションなの?って話
Outlookのアドオン市場ってそれなりにあるんでは
個人的に1つ使ってる
外国製で30ドル位だった
いろんな本に出てくるマネージヒープってなにもの?
.NETが管理してるメモリ領域のうち、参照型の実体を置いておく領域
Outlookの開発はVSにテンプレートがあるほどだしな
>>46 じゃあ参照型の変数(ポインタ?といっていいのか?)はどこにあるの?
ローカル変数ならスタック
>>49 ありがとう
じゃクラスのフィールドに参照型が定義されてたら?
参照型のフィールドは参照型の実体の一部
>>51 thx
なんとなくわかった気がする、ありがとー
53 :
デフォルトの名無しさん:2014/04/24(木) 21:09:08.42 ID:eyNeUV4V
>>43 サンクス
Windows Live Mailしか使った事がなぃんだけどOutLookと比べてどっちの方が使い勝手が良いですか?
もしOutLookは10年位前に使った事はある程度です。
そりゃもうスレ違いだ ソフトウェア板かどっかに行ってこい
使い勝手の良さなんて個人の趣味で変わるしな
あえて言えばテンプレ改良してマイメーラーが最強w
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
データーの永続化で一番高速な方法ってなんですか?
君が何を永続化しようとしてるのかによって取れる方法が違うんだから
先にそれを言った方が二度手間にならなくていいぞと忠告してやる
深さが二段階しかないツリーデータです
neueとかいうブログの人がシリアライザのパフォーマンス比較の記事を書いてたように思ったが、
まあ気になるなら自分で確認するのが一番だよね。
OWINてどうなの? IIS捨てれるの?
ASP.NETのように、ビハインドでビジネス層のクラスを組み立てながら、
WEBアプリの構築は、JAVA + JSP + サーブレット でもできます。
しかし、ASP.NETのサーバーコントロールのように高度に抽象化されたデザイン用クラスは、
JAVAを使った開発でも最近はあるんでしょうか。
あるいは、ASP.NETのオープンソース版、.NETフレームワークのオープンソース版って、実用的なんでしょうか。
最近では、c#のコンパイラがオープンソース化されたようですけど。
お金のかからない環境を構築したいとおもって。
>>63 Struts 1のtaglibがそのものなのだが
>>65 本屋でパラパラページをめくりながら探していると、
Structってもはや古い技術だというような記述があったので、意外でした。
taglibは本屋では見つからなかったです。
ちょっと調べてきます。
ありがとうございます!
どっちもStaticなグローバル変数で持ってますよね、SingletonとStaticの違いってなんですか?って質問されて上手く答えられなかった・・・
Singletonはクラスのアクセスメソッドで制限をかけることができる。
グローバル変数は誰がいつどのタイミングで読み書きするかわからない。
シングルトンは遅延初期化させたい時かな
静的コンストラクタはあまり使いたくない
静的プロパティだって遅延初期化できるっぺ
C#的にシングルトンって意味あるのかな?
プライベートコンストラクタ書きたいだけちゃうんか
71 :
5:2014/05/04(日) 07:13:45.27 ID:q7rdqljv
>>65 調べてみたところ、strutsはオワコンでした
73 :
72:2014/05/04(日) 07:20:59.25 ID:q7rdqljv
>>71は間違いです。すみません。
>>65 ASP.NETライクに、抽象化されたUIコンポーネントでwebプログラミングするには、
JAVA標準環境(Java EE 6)+ JFS 2.0 を使うと良いようでした。
お金のかからない世界へ行ってきます。さようなら~
破棄して作り直そうとする可能性がある時、静的だとメモリリークの危険が高い
どっちにしろSingletonは利用者側からすると依存関係がわかりにくくて密結合だから、Singletonで取得するインスタンスを利用して実装しないといけないとマジでイライラするんだよね
とにかくテストがやりづらい
グローバル変数的に使おうとするから糞コード量産することになる
ジェネリックではまっていますが、なにかいい解説書はないですか‥‥
>>77 Javaスレの奴か
ジェネリックな比較はIComparableではなくIComparer<T>を使うべき
それに伴ってstruct制約も不要になる
C#のジェネリックは静的メソッドもクラスの型パラメータを引き継ぐから<S>要らん
https://ideone.com/99dC5f
>>78 ありがとうございます.無事コンパイルができました.
C#4.0 のオプション引数を使ってみようとしましたが,
public static void insertNode(ref Node<T> root, T key, IComparer<T> cmp = Comparer<T>.Default)
の最後のはコンパイル時定数ではない,とはねられてしまいました‥
「??演算子」の使用例
public static void insertNode(ref Node<T> root, T key, IComparer<T> cmp = null)
{
cmp = cmp ?? Comparer<T>.Default
以下略
>cmp = cmp ?? Comparer<T>.Default
とても頭の悪そうなコードですね
意味を考えたら不適切
>>70 wpfのVMを書くとき、一応4.5はスタティッククラス対応しているがシングルトン使ったほうが何かと便利
4.5以前に作られたライブラリは当然のことながらスタティッククラスのVMに対応していない
諦めてオーバーロードをもう一つ書くのがいいんだろうね
でも面倒
あと、スタティッククラスは継承使えないから何かと不便
>>79 それコンパイル時定数なんで、仕様変更考えるならpublicでは使わない方がいいかもね
「コンパイル時定数」に単語レベルで反応して「仕様変更」を連想した
>>85
だらだらとオーバーロードかくよりオプション引数を使ったほうがすっきりするよな
>>81 べつに問題あるとは思えないが
引数の変更に反応してるのかな?
こういう趣味の問題を所詮趣味の問題だと認識せずに吹っかける奴のが頭悪く見えるけど
オプション変数はなんかのコード分析でお行儀が悪いって言われるらしい
オプション引数はアセンブリパブリックなメソッドに使うとFxCopとVSのコード分析で警告出るよ
定数が呼び出し元にハードコードされてしまうから変更時に呼び出し元を再コンパイルしなきゃいけなくなる
シングルトンのメリットってどれも弱いよね、オブジェクト指向の利点である再利用できるってメリットを完全に破壊してる
オーバーロードよりオプションが良いか悪いかは問題点がわからないから何とも言えないな
少なくとも全ての基準であるMSのソースではオーバーロードが圧倒的多数だからオーバーロード使う
>>91 シングルトンはインターフェイス経由で使うんだよ
ちょうどComparer<T>.Defaultみたいにな
そうすれば差し替えができて「利用する側の」再利用性が上がる
利用する側のクラスはシングルトンの具象クラスに依存しちゃダメ
オーバーロードだと再コンパイル要らんのか?
>>91 >再利用できるってメリットを完全に破壊
んなこたーない。おまえアホか。
>>92 まるでインターフェースにしなきゃ差し替えが出来ないような物言いだな。
96 :
デフォルトの名無しさん:2014/05/06(火) 00:58:35.11 ID:IXzBb183
>>67からずっと思ってたが、デザパタの用語はだいたいどれもそうだけど、
シングルトンって言葉が指すものの解釈は一つじゃなくていろんなバリエーションがあるから、
どういう意味でシングルトンって言ってるのかはっきりさせないと、傍から見て
ずいぶん頭の悪い奴同士の会話に見えちゃうよ。
そもそもデザインパターンって適材適所で使うアルアルをまとめただけのもんだしな。
それを使わないとダメとかそう言うもんでもないし。
オブジェクト指向がうんたら言う奴ってそこを忘れてルールにはまって自爆してる奴が多い印象。
まぁだから本とかにも何がなんでも型にはめようとするなと冒頭に書かれてるんだろうけど。
デザパタなんて大半はオブジェクト指向の機能を利用したハックだろ
オブジェクト指向というより関数型みたいなことをやろうとしてるものが多い
シングルトンはスタティッククラスで代用できるから、今更面倒なシングルトンを使う必要はないって意見が多かったようだが
一々staticと、すべてのフィールドやメソッドに書くほうが面倒だと思うんだが・・・
それと再利用というならベースクラスを使い回しできるシングルトンのほうが優れているだろ
スタティッククラスの利点は、知らない人に説明するのがシングルトンより楽だぐらいしか思い浮かばん
100 :
デフォルトの名無しさん:2014/05/06(火) 03:55:27.39 ID:pzJ6+ovS
staticクラスはどういうクラスなのかがわかりやすいから
「フレームワークがstaticクラスを提供する」みたいなのが主な使用場面じゃね?
staticってそのクラス、メソッドだけで自己完結しているって意味合いがあるから
信頼できる関数として利用できる
Singletonをstaticで代用なんてのは本来の使い方じゃない
>>102 おまいは関数の中身を修正したら
呼び出し側の再コンパイルが要ると思ってるのか?
System.Diagnostics.Processが子プロセスを持っているかの判断は出来る?
親プロセスを殺す際に、親プロセスが起動させた不定の子プロセスもまとめて殺したいんだが。
>>93 要らんね
オプション引数の省略はデフォルト値を渡すようコンパイルされる為、後で変更してもだめ
其の程度のデメリットならオプション引数使うべきだわ
いや1か0かじゃなくてデメリットがある場合だけ使わなきゃいいでしょ
使ってはいけないのはdllのパブリック型のパブリックメンバだけだ
>>104 W32のプロセスに親とか子って概念あるの?
あるよー
ハンドルの継承とかに使われる
タスクマネージャでのプロセスツリーの終了とかもある
ただマネージでは公開されてないんじゃないかなぁ
CreateToolhelp32Snapshot, Process32First, Process32Next関数で親プロセスもとれるみたいだから
プロセス列挙してツリー構築してやればいけるかな
111 :
デフォルトの名無しさん:2014/05/07(水) 13:27:14.07 ID:7TKwW6oG
ラムダ式がある現在デザパタを使おうとしてる奴って単に時代遅れ
デザパタありがたがってる奴なんて目も当てられない
オブジェクト指向のそれとは違うだろうけど
ラムダ式にはラムダ式のデザインパターンがあるんじゃねぇの
113 :
デフォルトの名無しさん:2014/05/07(水) 17:39:53.54 ID:v8XT9GT6
ラムダ式があっても一部のパターンが使われなくなるだけ
>>111はデザインパターンしらんだろ
プログラマレベル2になったところなんですよ彼は
デバッグ時にラムダ含んでるとコード書き換えられないのはどうにかなんないのかな
デバッグ時コード書き換えの必要性を感じないんだけど
118 :
デフォルトの名無しさん:2014/05/07(水) 23:18:30.74 ID:os5r5Muw
DataGridView をFormに配置したところデータバインドをしていないにも
関わらず、DataGridView上に1行の何も値の設定されていない行が表示されしまいます。
どうすればデータバインドをするまではこれを非表示にする事が出来ますか?
shdocvw の参照ってどこから行えば良いのですか?
参照項目より探しているのですが、見当たりません。
121 :
デフォルトの名無しさん:2014/05/08(木) 00:21:51.27 ID:/gsLR9fm
Edit&Continue(の事を言ってるんだと思うけど)ってそもそも有効な場面は
かなり限られる気がする。
俺もほとんど必要性を感じたことがないな。
>>118 AllowUserToAddRows = false
124 :
デフォルトの名無しさん:2014/05/08(木) 03:13:05.77 ID:LX70lqIo
>>110 遅くなった。Process32Nextとかを調べてみるわ。
>>115 64bit だと常にダメだけどな。
32bit環境でデバッグしてるのか
あ、そうなんだ。
自宅のWindows7に2013入れたけど、メインが2010だから知らなかった、、、
ありがとう
129 :
デフォルトの名無しさん:2014/05/08(木) 13:56:48.08 ID:jPbn7lXq
set内で、valueとして渡されたクラスインスタンスのクローンをsetするのって、マナー違反なのかな?
クラスのプロパティにsetしたクラスインスタンスが
外部で書き換えられるのが嫌だからクローンをsetしたいんだけど。
メソッドの方が理解しやすいな
普通にアリ
防御的コピーという非常に一般的なテクニック
>>129 それならその型そのものをイミュータブルにするか値型にすることをまず検討
すべきだと思うけどね。
配列やコレクションは別として。
配列をプロパティにすること自体が
134 :
デフォルトの名無しさん:2014/05/08(木) 22:43:47.23 ID:9vcPvL0x
>>113 デザインパターンっていうのは
Singletonのような本質は何にも変わってないけど通ぶりたいバカがカッコつけて使うものと
ラムダ式でおきかえられるもの
ラムダ式を使って違う形にしたほうが良いもの
の3つに分類できる
つまり今使ったほうがいいものは一つもありゃせん
おっ、おう
エースコンバットの嘘字幕かな?
覚えたばかりのものを使ってみたいだけなんじゃない?
たぶんラムダ式もデザインパターンも理解してない。
ラムダ計算は俺には無理だった
通ぶりたいバカが語っちゃんてんよ(苦笑)
こてっちゃん
メンバー、変数に一々public書くのだるいよう…
省略したらpublicでいいだろこんなもん…
143 :
デフォルトの名無しさん:2014/05/09(金) 19:38:52.20 ID:E9SfM4pV
できるだけprivateにしましょうっていうオブジェクト指向の毒が蔓延してたからね
変数というか、フィールドをpublicにすることなんてないだろ
145 :
デフォルトの名無しさん:2014/05/09(金) 19:42:43.70 ID:v/oaYztB
publicにする手間もっと上げたら
まともなコードたくさん生まれるようにならんかな
プロパティにしてたから助かったなんて状態になるのも
(場合によっては)滅多に無いけど、
公開するのは意識してやりたいからいいんじゃないの。
publicなフィールドやらプロパティやらが多いのは、
大体がカプセル化できてない似非オブジェクト指向。
まともってどういう観点で?
欠陥が少ないことをまともと評するか
それとも規約をかっちり守っていることをまともと評するか
やっぱ基本はprivateだからな
クソみたいなコードのさらにクソなprivateな部分も公開したいってどんな露出狂だよ
150 :
デフォルトの名無しさん:2014/05/09(金) 20:45:37.38 ID:E9SfM4pV
privateなんて公開されてても使わなければいいだけの話だからな
下手なライブラリは公開メンバを少なくしようとして使いにくくなってたり
そもそも出来ないことがあったり目も当てられない
一般的なルールに苦言を呈しちゅうオレかっこいいみたいな感じ?
「下手なライブラリ」の本来privateにすべき変数いじるとか怖くてできないんですけど
誤字ってカッコいいよね
生き急いでる感じがしてさ
varとdynamicは確実にうんこ
>>150 これプログラマのバカの壁の一つだが、ダメグラマって本当に君みたいに思ってるらしいな。
こういうセンスの奴がGUIデザインするとButtonやTextBoxが100個とか並んでる画面を
平然と作るんだよね。
156 :
デフォルトの名無しさん:2014/05/09(金) 21:35:50.04 ID:E9SfM4pV
var使わずに型名みたいな無意味な情報を一生懸命タイプして可読性下げてる奴って
アホちゃうか? としか思えん
皆さんなかなか凝った辞世の句を披露なさいますねえ
使わなければいいだけとか…だめだこりゃww
そんなにつかいたきゃprivateでも無視してアクセスすればいいだろ
わざわざ公開する必要もない
>>156 もう君はVB6でVariantだけ使ってプログラム書いてれば良いんじゃないの?
なんでvarとVariantが関係あるんだ
ラムダ使っちゃっていいの?
どうせFramework2.0で製品化するんでしょ
バリアント 打てぃ
166 :
デフォルトの名無しさん:2014/05/10(土) 03:13:52.62 ID:KeiPU5wL
varはマイクロソフトも推薦してたろ
仕様を理解してないで無視すれば良いとか言ってる奴はいたいな。
表計算より電卓使うことを強要する老害みたいだな
嫌だねえ、年は取りたくないものだ
>>162 ひょっとして var で宣言したら Variant みたいになんでも入る変数になると思ってるんじゃ... (w
えっ違うの?
varはインターフェイスの時に困る
>>169だって既定型で受けるためにException使ってるし用途次第よ
馬鹿は記憶領域が一つしかないから万能解を求め、臨機応変を考えない
(゚д゚)ハァ?
明示したいときゃすりゃいいだけの話でございましょう?
>>164 シンタックスシュガー的な機能で実現されてる文法
たとえばラムダ式、var、yieldなんかは
コンパイラが対応してれば対象プラットフォームが2.0でも使える
使えないのはLinqとかdynamicとかawait/asyncとか
ま、C++11 でも auto とかあるしねえ
C++のautoは、ラムダを軽量バインドするときに必要だし、
defaultテンプレートパラメーターを使わないでテンプレートの演算結果を宣言する際に必要だから
180 :
デフォルトの名無しさん:2014/05/10(土) 14:00:09.11 ID:hS3sE/YA
型名は本質的な情報じゃないんだよね
変数名こそが本当の情報で
型名は付加情報としても場所を取り過ぎて本質を見えなくするだけ
>>180 それは実数や整数のように汎用性が高い型の場合にだけ言えること。
ハンガリアンバリバリのソースみるとイライラする
MSの糞SEが用途間違えたシステムハンガリアンの方な
>>171 C#のvarはコンパイル時に型を推定してくれる。
何でも入るのはdynamic
varはメンバーフィールドやファンクションの引数・戻値には使えないから
無茶しようと思っても無茶できんな
dynamicは基本的には使うべきではないだろ
dynamicは引数の型によってオーバーロードを動的に選択させられるのが便利
そもそも型で分岐すること自体クソではあるけど、どうしても仕方ない場合には
if is並べるよりはよっぽどマシだ
dynamicはExcel制御するとき大活躍だろ?
アーリーバインディングはOfficeのバージョンに依存していかん
dynamicが凄いのはCOM Interopに使えたりするのがMSの独自拡張じゃないところ
ちゃんとプロトコルが公開されていて、誰でも独自のオブジェクトシステムを
dynamicで透過的に扱うためのバインダを作れる
190 :
デフォルトの名無しさん:2014/05/10(土) 23:18:18.72 ID:ryDslySJ
C#で復興君を作ろうと思っています。
>>187 どの場面でもifやswitchを使わないに越したことはないな。
ちなみに俺がいちばん嫌いなコードは、
if(a==true)
a=false;
else
a=true;
>>191 幾ら何でも、そんなコード書く奴居ないだろw
a=!a で済むもんな
それ以前に{}でくくらないのは嫌いだわー。
そんな事よりコメントも書かずに三項演算子の中に更に三項演算子を複数重ねるのは止めてくれ。
書いてるほうは行数減らせてノリノリで嬉しいんだろうが解読がめんどいわ。
196 :
デフォルトの名無しさん:2014/05/11(日) 11:40:30.44 ID:qOyx0lRS
またswitchを見たら仮想関数に書き換えて
可読性や依存関係をメチャクチャにする
オブジェクト指向に洗脳されたカスか
メソッドへの振り分けは別にオブジェクト指向関係ないだろ
ソースコードのレイアウトの問題に過ぎない
関数ポインタ入れたテーブルで振り分けるとか太古の昔からあるわ
198 :
デフォルトの名無しさん:2014/05/11(日) 11:48:07.86 ID:qOyx0lRS
動作を決定する権利がオブジェクトの側にあるか
オブジェクトを使う側にあるのかというのは
本当に決定的な違いなんだよ
そして大半のケースでオブジェクトを使う側にないと柔軟性が確保できない
オブジェクトの側で動作を規定するのは最悪の設計である場合がほとんど
==true って最悪だよな
boolean値なのにいちいち比較するとか
>>198 型による分岐をdynamic+オーバーロードに置き換える話なら
制御は使う側にあるだろ
それがいいか悪いかとお前の思想はともかく
>>194 俺はあえて
a ^= true;
と書く
>>202 cond は三項に限らんし、中途半端な知識乙
==true、==falseは見やすさ目的で十分使えるだろ
>>204 それが見やすいと思うなら何か勘違いしてるんだよ。
まあ、hoge == falseは微妙かもしれないが == trueはないね。
==false は頭が疲れた時でもぱっと見でわかりやすいからたまに使う。
==trueはあんま使ったこと
あー==trueだけの事を言ってたのか
if ( ( value == 1 ) == false ) {
}
true は、代入に利用するくらいで等価比較は御法度だよ。
処理系によってはどのビットが立っているかわからないときがあるからね。
そんなわけないじゃん
>>209 C:値1と定義
C++:true/falseの2値しか取らない
Java:true/falseの2値しか取らない
C#::true/falseの2値しか取らない
Visual Basic 6:ビットがオール1と定義
で どの言語と間違えたの?
スレチだけど、C++だと
bool a = ( b == TRUE );
なんて書いたことはあったな。
>>212 C/C++ に関していえば、
処理系は必ず true == 1 と扱うが、
ライブラリ関数の中にはそうでないものがある。ctype.h の isalpha() のようなポピュラーなものでさえそうだ。
ctype.h は C++ でも標準ライブラリ扱い
>>209 の C/C++ の項は使い手に即した内容ではない役立たずだね、他は大丈夫なの?
bool a = b ? true : false ;
>>212 ある処理系で問題なくても true と比較するコード書く時点でトーシロー
以下、休日の昼下がりを下らない言葉尻の取り合いでお楽しみ下さい。
なお明日は月曜日ですので、その点ご了承下さいませ。
==trueが見やすいなんて言っちゃうのは変数名が原因だろ
==falseはアリかな
なんか始まった
>>221 intとboolを比較したそらあかんやろ
(bool)isalpha(c) == true
ってせな
(int)trueは間違いなく1
ホント馬鹿だな
いちいち型キャストして比較するとかながったらしすぎw
>>227 _Boolをboolというスペルマで使用できるようにするのがstdbool.h
>>226 _Bool isalpha(int c) とか変更しなかった/できなかったからね、ま、古い言語だから仕方がない‥
さて話を戻すと、c#で「==true」が意図しない動作
をすることは一応 無いのだけれど…
いまは問題なくても後々移植性に問題出たりするんだよ
相談スレっぽくなくなってしまった。自分も片棒を担いだんだが。
流れを戻すとして、char型をSystem.Windows.Forms.Keysに変換する方法ってある?
236 :
デフォルトの名無しさん:2014/05/11(日) 17:41:37.11 ID:0yrYxZ6d
移植性を気にする奴がC#とか頭悪すぎw
>>232 いつだよw
突然仕様変更になるのか?
あんなに破壊的変更嫌って文脈キーワードガンガン増やす言語が
>>234 char <-> Keysは1対1の対応じゃないから無理じゃないかなぁ
変換テーブルを自分で作っておくしかないと思う
>>238 やっぱり自力でやるしかないか。コードが綺麗じゃないけど仕方が無い。
しかし bool? という if(xxx == true) を強要する型があるんだよね
強要された妄想にとりつかれているんですね
困ったものです
xxx ?? falseでいいんじゃね
if ( xxx.HasValue && xxx.Value )
だろjk
>>239 MSDNによると、
- Keysの値はWin32の仮想キーコードに対応している
- ANSI文字の仮想キーコードはANSIコードそのまま
らしいから普通に、
char ⇒ ANSIでデコード ⇒ Keysにキャスト
でいけるんじゃないの?
っていうかVBだとOption Strict Offにしとけば暗黙変換してくれたような気がw
>>245 文字数が少ない方がいいという前提はどこからきた?
ごめん、ちょっと例えとしてよくなかった
「xxx is SomeType ? (SomeType)xxx : null;」って書くぐらい冗長
って方が俺の言いたいことに近い
nullならtrueと見做したい場合
!(flag == false), flag ?? true, !flag.HasValue || flag.Value
一貫性を考えたら??一択
後で解読しやすく書いてくれれば文字数が多くても文句は言わん
一文字いくらで金額決めてるんだから一文字でも無駄にするんじゃねーよ
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
C++にboolなんかあったんだ
asmどうなってる?
>>252 x.ch=2なんでしょ?
x.bl==1じゃないとtrueにならないの当たり前じゃん
bool 知らないとかモグリかよ
マジレスすると0以外はtrue
蒸し返してすまんが
>>162はE9SfM4pVの発言に対する皮肉で書いたんだけどさ
勿論知っていると思うけどVariantは見えないだけで中に型情報ある物な訳で
直接型推論するのとコード上の論理的な意味合いはなんら変わらないと思うんだが。
個人的にはvarって最近は使うようにしていてコード量が減るのは確かなんだけど自分で
書いたコードならまだいいんだけども開発環境の支援が無いと読みづらくなることが
多いから手放しに良いものだとは思っていないオールドタイプなんだけど世間一般の
認識はそうでもないのかね?
259 :
デフォルトの名無しさん:2014/05/12(月) 18:18:04.63 ID:1w9leY4l
うわあ
何だこのキチガイ怖い
C#をVisualStudioの支援なしで読むの?
>>258 > 勿論知っていると思うけどVariantは見えないだけで中に型情報ある物な訳で
> 直接型推論するのとコード上の論理的な意味合いはなんら変わらない
出直してください
>>260 GitHubみたいなのでコードレビューとかしたらそうなると思うケド?
>>261 具体的にどの部分に対してのツッコミ?
263 :
デフォルトの名無しさん:2014/05/12(月) 18:50:10.34 ID:rNMuS3MH
C#のvarって、別に読みにくくならないと思うが。同じ事を2回書かないで済むようになっているだけって認識だな。
それと、C#のvarとVBのvariantって全然ちがくね。どっちかっていうと、dynamicがvariantに近いよね
varはただの糖衣構文だからね
dynamicは内部的にはObjectって聞いたことあるような気がするけど
265 :
デフォルトの名無しさん:2014/05/12(月) 19:09:08.86 ID:1w9leY4l
dynamicは動的言語的な名前でのアクセスを高速にやるために
動的なコード生成的なハックをしてるって聞いたけど
VBはもともと動的言語だからvariantも素直に名前でアクセスしてるだけじゃねえの
話の流れを読まずにレスすると
>C#のvarとVBのvariantって全然ちがくね
そんなことは みんなわかってる
>>265 >VBはもともと動的言語
えっ? インターフェースに基づいてメソッド呼び出しする言語なのに?
>>262 マゾいなぁ
うん、オールドタイプだよあんた
269 :
デフォルトの名無しさん:2014/05/12(月) 19:16:49.39 ID:1w9leY4l
いやいやvariantとvarの違いも分かってないキチガイが低レベルなオナニーしてるだけでしょ
別に俺も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を付けて可読性が下がるコードなんて作れないよ
>>262 ある程度の規模になるとどちらにせよ落として支援つけないときついな
Reference Sourceみたいにメソッドだけでもたどれるとまだマシなんだけど
>>271 それは一般的には話が逆だと思うよ。
一般的にローカル変数については暗号的な名前でも構わないとされているし、
その理由は、それが何者であるかは型と前後の文脈から分かるから。
もちろんvar使ってもVS使う限りインテリセンスで型はわかるし、そうでなくても
メソッド名その他から型がわかるケースも多いけどね。
vaiantの凶悪なところは a =1 +"1" で aが2になる挙動だわ
せめて入っている型と代入した型が異なったらエラーで止まって欲しい
>一般的にローカル変数については暗号的な名前でも構わないとされているし、
(´・∀・`)ヘー
VariantがクソなんじゃなくてVBがクソということでFAだな
>>276 アレでも前世代のBasicに比べたらはるかにマシなんだけどね
Roslynプロジェクトの規約だとvarは原則禁止で
>>270の後者のように右辺に型名がくる場合だけOKだよ
LINQ禁止だしforeachも列挙子が構造体でないものは禁止
さすがにコンパイラだから保守的になるわな
279 :
デフォルトの名無しさん:2014/05/12(月) 21:47:10.68 ID:oYZZ6D9M
C#の場合var使ってローカルの変数名もある程度まともにするのが流儀だと思うが
LINQとか何が入ってるのかよーわからんし
リーダブルコードでは説明的な名前にしろって書いてあったな
暗号ね、どこの一般やら
Linqのクエリ形式は苦手だなぁ
>>278 >foreachも列挙子が構造体でないものは禁止
これって何を危惧してのことなんだろう?
列挙中にクラスインスタンスの状態が変更されないように、とか?
パフォーマンス
TreeNode _1838e3376;
とか宣言するのか。
目頭が熱くなってきた。
>>280 リーダブルコードなら、明らかな一時変数ならどうでもいいって書いてあったような
285 :
デフォルトの名無しさん:2014/05/12(月) 22:05:14.02 ID:1w9leY4l
>>273 そもそもローカル変数の名前が暗号でいいなんて考えは論外だから
可読性というものを一度でも考えたことがあるならそんな結論にはなりようがない
>>284 一時変数だと分かればいい、だよ
ようなじゃない
暗号的にする意味もわからない。
手作業での難読化を強要されている可能性以外には。
>>285 馬鹿馬鹿しくて反論する気にもなれないが、他人の書いたコード読んだことある?
ローカル変数で説明的な名前が適切なケースももちろんあるが、そちらの方がむしろ例外的。
ローカル変数に説明的な命名をする人なんかいないよ。
俺は納品前に説明的にリファクタリングするけど
暗号「的」って暗号使うって意味じゃないでしょ
kbtitとかそんな話でしょ
なんか話が通じない気がしてきた
こりゃ駄目だわ
292 :
デフォルトの名無しさん:2014/05/12(月) 22:14:35.51 ID:1w9leY4l
説明的になりすぎて名前が長くなりすぎるのも好ましくないからな
ひと目で見渡せる範囲で何の処理をしてるか分からないと直感的に読みやすいコードにならないから
型名を分かりやすく短くしたものが変数名になる
っていうパターンが多いね俺は
話題になってるリーダブルコードでは、
タイプ数なんかケチるなよモダンなエディタ使ってんだろ?
って書いてありました。
auは毎回id変わるのか…。
ハゲは変わらなかったのに。
ANSI Cの関数みたいな感じに短縮した名前ならよく使うけども
>>287 暗号的というのは機能を明示的に表してないという程度の意味だよ。
var fs = new FileStream(path, FileMode.Create)
これをいちいち、
var fileStreamToReadWriteLog = new FileStream(path, FileMode.Create)
なんて説明的な名前を付けるのはダメグラマ。
そんなの前後のコード見ればわかるし、わかるように書けと。
逆に聞きたいけどそれのどこが「暗号的」なんだ
298 :
デフォルトの名無しさん:2014/05/12(月) 22:20:33.90 ID:1w9leY4l
意味の薄いことを長ったらしく書いていいんだとすれば
varを使わず型名をいちいちかけって言うことになる
見るのが大変で直感的にわかりづらい長ったらしいコードになっていいなら
varを使う理由もない
暗号という言葉が利用されるところで仕事をしたことが無いんじゃないか?
アクロニムって単語が出てこないんだろ。
>>297 君みたいな非常識な奴にとっては違うんだろうねとしか言いようがない。
では何というべきなのか。
こういう場合は暗号的っていう表現を使うんだよ馬鹿。
そもそもvarとかうんこって書いたの俺だけどここで話してるようなことについて言ったわけじゃないからな
まぁC#スレはプログラミング言語についての議論できるようなレベルじゃないからいちいちつっこまないけど
>>299 暗号的な命名はいつも頭辞語とは限らない。
じゃあhogeって何の頭文字なのか言ってみな
普通に頭字語じゃないの
すさまじいねこれは
子供みてえにじゃあじゃあ言い出したな。
どっから引用したのか知らんけどそこはどうでもいいよ
単にその言葉の解釈について思ってたのと違ったってだけだから
306 :
デフォルトの名無しさん:2014/05/12(月) 22:28:19.55 ID:1w9leY4l
言葉の定義につっかかって本質の議論ができないアスペの集まりか・・・
1バイトを削るのに命を賭けたり、人生でキーボードを打つ事の出来る回数が決まっている人でも無い限り
変数名は分かりやすくしてクレヨン。
あんま長ったらしいのも問題だけど、変数名や関数名から役割を普通に判断できるくらいにはして欲しい。
>>298 個人的にはvar使わない派。型名を書くことを他人に強制する事までは無いがね。
使わない理由はぱっと見で型が分からないのが嫌いだから。
使うとしてもforeachとかくらいか。
>>304 なるほど、その幼稚な物言いが子供みたいだとは思わないんだ。
馬鹿だろお前。
309 :
デフォルトの名無しさん:2014/05/12(月) 22:29:37.19 ID:1w9leY4l
varを使いさえすれば型名がいかに必要のない情報か実感を持ってわかるだろう
食わず嫌いはやめよう
人格批判が出てきたので
このお祭りもそろそろ終わりですね
俺はごく狭い範囲でしか使わないFileStreamならfsって付けちゃうな
ログを書き出すような寿命の長い変数ならもうちょっと丁寧に付けるが
311 :
デフォルトの名無しさん:2014/05/12(月) 22:33:18.65 ID:1w9leY4l
何のファイルのストリームかが自明ならfsでいいと思うけどね
そもそも説明的な変数名をつけろってのは
スクロールしないと意味を追えない変数は邪魔だってのが本題だから
一時変数は一時変数だと分かればいい=寿命が短いなら寿命が短いことが分かればいい
ってのもそういう意味ですよ誤解しないでね
Streamって大抵の場合コンストラクタやメソッドに突っ込んでおしまいだし、
スコープもusingで明示されることが多いから変数名云々の議論には全く向かないだろ
>>300 > こういう場合は暗号的っていう表現を使うんだよ馬鹿。
使わねーよ。
使うと言うならその証拠だしなよ。
315 :
デフォルトの名無しさん:2014/05/12(月) 23:20:41.55 ID:h67qSrzm
ArrayList は参照型なのでしょうか?
ArrayList に ref を付けずに外部ファンクションに渡して値を設定しました。
呼出し元で確認すると ref をつけていないにも関わらず値が格納されていました。
むしろ何故参照型でないと思ったのか
関係ないけどArrayListは過去の遺物だから使うな
>>314 繰り返すが、では何というのか。
いや答えなくていいよ馬鹿。
http://ja.wikipedia.org/wiki/命名規則_(プログラミング)
こういう馬鹿ってたとえば「教科書的なサンプルコード」って表現を聞いたら教科書に書いてある
サンプルコードのことだとか思うのかね。
あるいは「文芸的プログラミング」って聞いたら文学的味わい(笑)のある人語の文章で
コーディングするとか思うのかね。
義務教育からやりなおした方がいいんじゃないのマジで。
歴史の授業よろしく過去の遺物だけ教えて
近現代史まで教えてない義務教育もどうかと思う
>>317 根拠として Wikipedia って...
笑いとろうとしてるのか?
マジで、意味はとれなくないけど、スゲー違和感あるし、アホっぽく聞こえるからな他所でしゃべらない方がいいぞ (w
普通のWikipedia記事と出典が与太話一カ所にしか付いてない
>>317を同列に扱うのはちょっと…
無論全般的にうんこなんだけど
321 :
デフォルトの名無しさん:2014/05/13(火) 00:05:53.91 ID:1w9leY4l
細かいことを気にして本質が見れない奴は駄目だ
プログラマはそうなりがちだから注意しろ
リンクはUrlエンコードして貼れとなんども
>>309 型名が必要ないって全く理解出来ないなぁ。C#で型を意識しないって時点でネタだろ?
そもそも結局変数名短縮して書くとか言っている時点で型を意識してるんじゃないの?
そんな俺俺ルール全開の話展開されてもなんか一人でコード書いている人の
オナニーにしか見えないよ。
多人数で書いていたら命名規則とかをガチガチに決めない限りそんな曖昧な
コードは混乱するだけだし、人のコード読んだり見せたりした事無いんじゃない?
そんな事するくらいなら型名できっちり明示されていた方が間違いないだろ。
varは同じことを二回(宣言と初期化)書かなくていいって程度の話だと思うんだが
それは見通しが良くなるという意味であって型に関して意味が無いという話ではないぞ
Dictionary<string, Dictionary<int, 自作クラス>>
みたいなの書かなければいけなくなったときに
型名を捨てました。
でも数値は型に関わらずnValueみたいにつけちゃうかも
Numberの意味で
326 :
デフォルトの名無しさん:2014/05/13(火) 02:06:16.80 ID:SWSrJt6s
varを使うと、「変数は宣言時に初期化」が強制される
ってのが一番の利点だと思っているんですけど。
思ってりゃいいよ。口を開くな。
328 :
デフォルトの名無しさん:2014/05/13(火) 10:05:01.34 ID:pfvuptpJ
>>324 使うメソッドを持ってれば実行されるから、型なんてどうでも良い。
>>326 > varを使うと、「変数は宣言時に初期化」が強制される
意味わからん。
var 無くても宣言時に初期化が必要な変数は初期化するし、不要な奴はしない。
なんにも変わらん、ちょっと書き易くなっただけ。
昨日から馬鹿が多いな本当。
型なんかどうでもいい、って言ってる奴は、釣りで言ってるのでなければ
1週間後には書いた本人にも理解できないようなコードを書くタイプ。
要するに、今コードを書いている自分の頭に入っているような前提知識を持たない人から
自分のコードが可読的に見えるかどうか、っていう視点が欠如してるタイプ。
そりゃコード書いてる時にはコード上に型が明示されてなくても何も困らないに決まってる。
だってそんなの「今」コードを書いてる自分には自明だからな。
問題は「今」自分が持ってる一時記憶が失われた後でもコードが可読的かどうかのはずなんだが、
ダメグラマってこういう当たり前のことがわからないみたいね。
単にわからないだけじゃなくて、何度それで失敗してもその失敗から学習しない。
varは宣言時に代入もしないと、型が判らないからコンパイルエラー
宣言時に初期化することがメリットとは思えないなぁ。
他の言語ならともかく、C#ではvarを使わなくても、
初期化されていない可能性のある変数への参照は
コンパイラが警告を出してくれるんだから。
思わなくていい。糞みたいな口を開くな。
336 :
デフォルトの名無しさん:2014/05/13(火) 17:07:01.01 ID:+/9sUvLU
>>331 型なんかどうでもいいって書き込みなんか無いと思います。
プログラムが読めても日本語が読めない人ですか?
>>336 >>309 型は必要のない情報
>>325 型名は捨てた
ちょっと遡っただけでも二つあるんだけど日本語読めない人ですか?
同じ主張していた人は前にも同様の事を書いていたと思う
警告じゃなくてコンパイルエラーになるから、そこは間違えようがない
うるさい奴だな
規制も解けたし久しぶりに荒らすか
ばかばっか
玉ねぎテスト
342 :
デフォルトの名無しさん:2014/05/13(火) 19:04:44.91 ID:P6IZAQAm
>>337 型は何よりも重要だが型名として明示する必要は無いというだけ
型は論理的な制約としてコンパイラとIDEとプログラマを助けてる
ソースを読むときには意味を追うことが重要であって
型名は意味を表さないからソースに現れる必要はない
それはシステム型ガリアンがわるいのであって
アプリケーション型ガリアンを使うのが正しい
そもそも.netでハンガリーを使うのは不適切
ハンガリーてw
予約語varすら不要にはできないのかな
新しい識別子が突然出てきたらそこで型推論して変数定義するだけだと思うのだが
それなんてブビ6?
348 :
デフォルトの名無しさん:2014/05/13(火) 21:45:37.20 ID:P6IZAQAm
変数の定義なのか既存の変数への代入なのかは分からないとダメだろう
間違いの元だし
>>348 それくらいインテリセンスとシンタックスハイライトで何とでもできそうだけど
ローカル変数のスコープが絞れない無能言語
不要にする意味がないじゃん
あとでその上とか、上位スコープに同じ名前の変数定義しても警告がでないとか、スクリプト言語かよ
紙デバッグする人とIDE活用する人の違いでしょうか
紙でデバッグってどこでビルドするんですか?
>>352 IDE活用するのは良いんだがそれに依存しちゃってる人って他人とレビューってどうやってやるの?
最低限の構文要素は残しておかないとソース解析や支援機能が劣化する
ていうか今のものですら不足
型明示しないとコード読めない奴がレビュアーとか恥ずかしくないの
レビューとか普通にソフトあるだろ
TFSならたしか標準だったはずだし
var程度で劣化するわけないでしょ
リアルタイムのエラー表示とかに比べたら全く完全に無視できる程度の処理
型推論っていうけど実際には変数型の解決と変換チェックを省いてるわけだからむしろ高速化しそう
>>355 すみません、劣化の実例出してもらえます?
すまん これからシアトル行きの飛行機に乗らないといけないんだ
いまだにハンガリアンつかってるのはちょっとイケてないよね
今のトレンドは何リアンですか?
ジャンガリアン
>>350 絞れるよ。ただ、外側と同じ名前をつけらんないだけ。
今どきイケてるとか言っちゃうナウでヤングなあなた
時代はキャメリアンよ
いやポリアンナでしょ
>>366 論点理解した上で「絞る」って口語表現の解釈で争うのか?
アスペかゴミかアスペのゴミだな
373 :
デフォルトの名無しさん:2014/05/14(水) 23:10:26.66 ID:hc7I7FLC
C# でフラッシュ上に描画されているボタンのクリックをする事は出来ますか?
例)
YouTubeの 再生ボタン
まっとうな方法はない
できないことはないけど非常に難しく、およそ初心者向きの課題ではない
UWSCさんにお任せした方がお手軽
どうせお手軽に稼ぐ手段にしか興味ないんでしょ?
4.5.1時点では各種コレクションやカスタマイズならIEnumerable<T>やIEnumerator<T>があるからインデクサ実装するメリットがパッと思いつかないな
逆にどういう時にあえてクラスにインデクサ実装するの?
377 :
デフォルトの名無しさん:2014/05/15(木) 05:43:37.91 ID:VFnGSa+C
>>376 たしか、ElementAtはIListを実装していないクラスの場合、
インデクサを使わず先頭から一つずつ数えるとか聞いた
ともかくElementAtは効率的である保証がないから
ランダムアクセスが早いクラスではインデクサを実装したほうがいい
ディクショナリとか多次元コレクションとか
二次元幼女のコレクションか。納得。
380 :
デフォルトの名無しさん:2014/05/15(木) 15:32:47.39 ID:hK9NRk/t
382 :
デフォルトの名無しさん:2014/05/15(木) 15:57:34.47 ID:hK9NRk/t
じゃ、ぐぐって
ぐぐりました
384 :
デフォルトの名無しさん:2014/05/15(木) 21:16:35.16 ID:VVboE5kT
おれもググった
ぐぐってきた、なるほどね
ぐぐってあげたよ
百度でも可
優しい世界
390 :
デフォルトの名無しさん:2014/05/17(土) 16:30:44.41 ID:QUUNT5cx
福島ヤクザの恫喝のお蔭で美味しんぼが休載になってしまった・・・
そ ん な に 福 島 県 の 野 菜 が 安 全 ・安 心
と い う な ら ば 宮 内 庁 職 員 ・ 天 皇 家 に 全 て 無 料 で 提 供 し な さ い
コピペマン参上!まで読んだ。
そんな事よりkeybd_eventで記号が送れないじゃないか。
入力対象がPostMessageは受け付けないしSendInputは動かないし困った。
UIAutomationは?
395 :
デフォルトの名無しさん:2014/05/18(日) 03:17:11.65 ID:fAlXIwAd
以下のコードを書いているのですが #1 の部分でたまにブラウザが閉じない場合があります。
何が原因なのでしょうか?
きっちりと閉じる時は閉じますが、たまに閉じない場合があるのです。
その為現在は、 iexplorerのプロセスをむりくり消すという方法を行っています。
SHDocVw.InternetExplorer ie;
mshtml.IHTMLElementCollection mshtml_ec;
do
{
url = "
http://maxnko.com";
ie = new SHDocVw.InternetExplorer();
ie.Navigate(url, null, null, null, null);
ie.Quit(); ← #1
}while(true);
アウトオブプロセスのCOMサーバプロセスのサーバの寿命が気になるなら
・途中で手に入ったCOMオブジェクトすべてにMarshal.ReleaseComObject
・COMオブジェクト入れてた変数は全部参照を切ってGC.Collect×2
のどっちかが必要
398 :
デフォルトの名無しさん:2014/05/18(日) 11:55:53.57 ID:0kvX68pZ
399 :
デフォルトの名無しさん:2014/05/18(日) 17:55:09.18 ID:KNbj8c8D
超初歩で申し訳ないのですが
string[,] hoge = {{"a","b","c"},{"a","b","c"}};
のような多次元配列があるとして
string[] test = hoge[0];
みたいに配列を取り出して渡すのはどうしたらいいですか?エラーがでます。
これで我慢しろ
string[][] hoge = { new[] { "a", "b", "c" }, new[] { "x", "y", "z" } };
string[] test = hoge[0];
ありがとうござます・・
色々な宣言方法があるんですね。
多次元配列 string[,] と ジャグ配列(配列の配列) string[][] は別物なんよ
インデクサで実装
string[] test = new string[6];
test[0]=hoge[0,0];
System.Collections.Specialized.OrderedDictionaryが使いづらいから
genericなOrderedDictionaryを自作しようと思ったら糞面倒臭くてワロタ。
みんなどうしてるんだ?
内部にList<T>とDictionary<TKey, TValue>を持つクラスを作った。
OrderedDictionary ってなんのために使うの?
Dictionary の中身のソートならLINQですましているけど、、、
互換性のために残してるんだろ。
ジェネリック版がないのがその証拠。
>>396 >アウトオブプロセス
あうと・おぶ・プロセス?
そうよ。別プロセスとして起動したCOMサーバのこと。
対になる言葉もちろんin-process server.
自プロセス内でアクティベートされたCOMサーバーオブジェクトよ
WPFのDataGridで、どの列が画面内に表示されているかを知る方法をご存知の方いらっしゃいませんか。
広いDataGridの各セルに値を表示していて、一定間隔で表示を更新しているのだけど、
表示更新を行うのを画面内に表示されている範囲だけにしたくて、現在表示されている列を知りたいのです。
どの行が表示されるかは、DataGrid.LoadingRow/UnloadingRowイベントで簡単にわかるんだけど、
列に関してはこれに類似する便利なイベントなどが見つからなくて、悩んでいます。
ScrollChangedイベントが発生した時に各列の位置を計算して、
表示されている範囲内に収まっているかを確認するという方法を考えたんだけど、
「表示されている範囲」を取得する方法がわからず、実現できるかどうか・・・
詳しい方、知恵を貸していただけませんでしょうか。
VisualTreeHelperとかじゃねえの
もっと直接的な方法があるかもしれんが
>>411 普通にバインドしてりゃそれくらいは自動でやってくれてるぞ
それでもDataGridの糞性能はどうしようもないから、
諦めてWindowsFormsHostでDataGridViewを使うのが吉
>>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の調子が悪くなってしまう場合がある為です。
閉じる?
var exp = Process.Start("explorer");
// 一定時間待つ
exp.Kill();
ウイルス系に感染してるんじゃない?
普通不安定になるならエクスプローラだけ再起動してもダメだろ
PC再起動しろよ
とゆうかエクスプローラはタスクバーでも使ってるから通知領域がおかしくなるぞ
418の言う通りウイルス疑うべき
OneDrive(SkyDrive) とか GoogleDrive 止めたら安定したことがある
ウィンドウを出してタスクバーに登録するあたりがおかしいんだよなw
丸投げ姿勢で常駐系に手を伸ばすなんてろくな事にならん
身の程知らずというものよ
>>421 どっちも使ったことないから知らんが、その系統ならオーバーレイアイコンの問題じゃないかな
そう言えば TortoiseSVN のアイコン処理がいろいろ悪さすることがあると最近知ったな
TortoiseGit でもアイコンのせいで超重くなるな
>>415 >>417 PC を長時間ログインしたままで使う人は explorer を時々再起動した方が良いのは賛成なんだが
explorer をいくつも開いてると復元が面倒なんでついつい致命的に死ぬまでそのまま使う
あと explorer の再起動はすべての explorer プロセスを列挙して全部殺して
最後の一つがタスクバーになるようにする必要があるのかな
explorerってタスクマネージャーでプロセス消したら勝手に立ち上がってくるよな
あれはタスクマネージャー側で再起動してる?OS側?
完全に消滅させられるけど?
あいつは完全に消滅した
>>425 あれのせいで作業遅れたことあるわ
インシデント登録のために再現しようとしたら再現しなくてなんだかんだ悩んで時間無駄にした
完全に消滅させるとタスクバーもいなくなるので
コマンド起動ですぐたちあげちゃうよな
デスクトップにフォーカスがある状態でAlt+F4
↓
ダイアログが出たら Ctrl + Shift + Alt + Esc 同時押し
↓
(゚д゚)ウマー
>>428 unix でいうところのシェルと同等だからね
シェルって勝手に再起動したっけ?
ウィルスの仕業じゃ
Windows XP SP2以降、再起動してくれることが多くなった
落ちたら再起動するってオプションと
外から殺されたらそのまま死んでる
って違いでしょ
そんな設定あったのか。OSでの挙動の違いかと思ってた
フォルダとデスクトップを別プロセスにする設定にしてて
タスクバーのプロセスが死んだときに
フォルダのプロセスが残ってると
タスクバーのプロセスは自動復活しない
C# は、改行のエスケープシーケンス効くのか?
string text = "Hello \
world" ;
>>441 ソース通り文字列に改行が入っていいなら@を使う。
文字列に改行を入れたくないなら複数行に分けて書くのは無理。必要なら+で繋ぐ。
その場合もちろん最適化は効くからパフォーマンスへの影響はない。
そんなのちょっとやってみりゃ分かるだろうに
馬鹿はプログラミングに向かない典型だな
string kaigyou = System.Environment.NewLine;
コントロールに設定したイベントを一時的に無効化する方法はありますでしょうか。
チェックボックスが2つあり、2つのチェックボックスのon/offによってリストボックスのアイテム一覧が変更される。2つのチェックボックスを同時にonにするボタンがある というフォームがあります。
http://i.imgur.com/1XiXIQE.png チェックボックスをonにした時、offに下時の処理はよいのですが
ボタンを押した時の処理で困っています。
ボタンを押した時の処理はこんな感じなのですが
checkbox1.checked=true;
checkbox2.checked=true;
これだと、一つ目のチェックボックスがonになった時と2つ目のチェックボックスがonになった時と二回リストの更新が行われてしまいます。
ですので
checkbox1.CheckedChanged=無効
checkbox1.checked=true;
checkbox1.CheckedChanged=有効
checkbox2.CheckedChanged=無効
checkbox2checked=true;
checkbox2.CheckedChanged=有効
というようなイベントを一時的に無効化したいのですが、そのような方法はございますでしょうか。
checkbox2.CheckedChanged-= とすればよいのですが、今後イベントが増えた時の対応が必要ですし
フラグを作って判定する方法も今後の対応が不安です。
フラグ方式で更新は非同期処理にする
チェックボックスを男性、女性、両方の3つにする。で、「両方」をチェックしたときは男性女性の2つはenable=falseに。
でも、何かUIも更新処理ももう少し考えなおした方がいいと思う
>>446 こういう初心者の質問の何が困るって、まず要件である設計が誤りなんだけどそこを指摘しても納得しないんだよな。
納得しないどころか○○さんは口だけとか言われたらブチ切れそうになる。
じゃあ質問者の望む通り糞な設計のまま無理やり実現する方法を教えても「いや、それはスマートじゃないと思うんですよね!だから質問してるのに・・・」とか言われて更にブチ切れそうになる。
今もその新人を指導中なんだが教えてもらう立場の人間が一番必要な素直さと謙虚さがないからもう匙投げてる。ってこれ蛇足だったね。
>>446 そういう機能を持ったカスタムコントロールを作らないと実現出来ない
既存の改修で簡単に変更できないのに
したり顔で設計が悪いの一点張りのやつとか多いよな。
Oralceの掲示板とか酷かった。
今後の対応を考えたフラグコントロールにしとけばいいと思うけどね
そんなレベルの話じゃねえ
新人研修でクズ掴まされた運の無い野郎が
自分の境遇を一般化してグチってるだけ
private以上のスコープを持つフラグはintが良い
455 :
デフォルトの名無しさん:2014/06/02(月) 02:51:01.91 ID:iW1LawJK
普通に条件分岐でできるじゃん
CheckedChangedじゃなくてClickedを使えば、ボタンでチェックを変えた時に処理は通らん
そしてボタンの時は一度だけListBoxの更新を呼べばいい
CheckedChangedイベントを抑止するか
ListBoxの更新を抑止するか
ボタンのときだけ別処理にするか
これだけならいろんな方法があるけど、
今後どう再利用していくか、どういうコントロールの増え方をするかとかに関わるからまじ設計次第だし。
それだけの情報じゃなんとも言えないというところでしょ
>>446 普通にラジオボタンで、男性、女性、両性 とした方が分かりやすくね?
て言うかなんのアプリケーションなのか知らんけど、不明とか答えたくないとかの選択肢は要らんの?
>男性、女性、両性
システム屋の発想だな
女性を先に汁って言う連中もいる
サベツニダ
オリンピックで国名を英語じゃなくフランス語の順にしろと言った国もあったなw
一方ロシアは・・・
両性じゃなくて秘密にしとけ
その他でいいだろ。
宇宙人だっているかもしれないしw
466 :
デフォルトの名無しさん:2014/06/02(月) 23:37:10.38 ID:iW1LawJK
はぁ?
俺がアスペだからかもしれんがネタなのかマジなのか判断つかんな
普通に全員とか全て選択/除外とかにしとけよ
>>446って、複数のcheckboxにSelectAllボタンを加えたよくあるUIだろ。べつに変じゃないと思うがな。
逆に「両方」がcheckboxだったらかえって混乱する。
>>468 男性、女性のチェックボックスがなくて、selectAllボタンがあるならよくあるUIだけど、
これはそうじゃないから珍しいUIだよ
>>446 そのUIの是非はともかく、一番素直な解決法は、リストの更新を行うタイミングを
チェックボックス(UI)のイベントではなく、モデルのイベントに変更すること。
Formのコードに何でも書こうとするのが間違いのもと。
俺なら普通にフラグにする
質問者不在でようやるわこいつら
人を誰何する前に安価を確認することをおすすめするよ
あと条件が増えるなら一覧ボタンをつけてもいい
チェックをしてから一覧ボタンを押すかんじで
パーサージェネレーターって今なら何を使うのがいいかな?
そこだけF#で書いてFParsecを使う
C#だけでは無理がある
ちなみに昔cslexとjayを試した事があります
Caperって現行最新版だとC#対応してないんだっけ?
>>475 アンカーミスったのは謝るが、人の間違い指摘しても、お前のレスが正当化される訳じゃないよ
くだんねー
誰も謝れなんて言ってないのにね
誰も謝れいなんて言ってないのにね
485 :
デフォルトの名無しさん:2014/06/03(火) 23:10:57.49 ID:pWmE+L7y
誰も謝れやなんて言ってないのにね
486 :
デフォルトの名無しさん:2014/06/04(水) 00:05:34.76 ID:57nRC2WA
誰も謝れいなんて言ってなのいにね
487 :
デフォルトの名無しさん:2014/06/04(水) 00:11:19.30 ID:aeQAlcnR
誰も謝れいなんて言ってなのいにねい
黙って謝れ
489 :
デフォルトの名無しさん:2014/06/04(水) 00:42:03.49 ID:aeQAlcnR
綾麻レイ
491 :
デフォルトの名無しさん:2014/06/04(水) 00:52:02.64 ID:aeQAlcnR
494 :
デフォルトの名無しさん:2014/06/04(水) 06:09:40.05 ID:aeQAlcnR
495 :
デフォルトの名無しさん:2014/06/04(水) 06:12:03.86 ID:aeQAlcnR
アナーキー板に飛んだかと思った
よそでやれキチガイども
正解は間違いなく
>>458のラジオボタンなんだが、「両性」とわけわからんこと書いちまって泥沼化したなw
男性から女性に切り替えるとき、女性チェック+男性アンチェックと二度手間が必要なIFはダメですわ
使用条件が分からないからなー
この手の一括選択って普通は手間を省くためで、例えば「全部選択してから不要な人の選択外して決定」みたいな使い方するだろ?
チェックボックスだったら3ステートにしておけば選択状態が変化した時も対応できる。こんな場合はradioはベストじゃないだろ
なんか読解力ない奴ばっかりで笑えるけど、質問者の質問の趣旨は、
コードで複数のコントロールのプロパティーを操作した時に、コントロールの~Changedイベント
経由で呼ばれる処理も操作したコントロールの数だけ呼ばれてしまうことを避ける
一般的な方法を聞いてるわけで、CheckBoxじゃなくてRadioButtonを使えとか
そういう話じゃないから。
答えとしてはC#の欠陥だから諦めろ
こういう話だろう
>>499 どっちかというと「男性」「女性」という言葉に惑わされて、その2つの選択肢が
排他的なものと思い込んじゃったから排他選択のラジオボタンが適しているように
見えてしまってるんじゃないかな。
うるせーぞ
デクノボーの見解は聞いてねえ
いま.net4.0をターゲットにゲーム作ってるんだけど、
アニメーションが終わり次第つぎの処理を実行したい場合
コールバック関数
イベント
Task
Rx
のどれがいいの
コールバックよりRxのほうが連続でアニメーションするときにネストが浅くて良いのはわかるけど
それぞれのたち位置がよくわかってない
jQuery.deferredみたいなのがほしい
使ったこと無いけどasync/awaitの4.0版ってどうなのよ
509 :
デフォルトの名無しさん:2014/06/04(水) 23:26:06.49 ID:Xy6Sshir
コントロールのイベントでやらなきゃいいじゃん
コントロールのイベント使っていません
hoge
.Animate()
.Then(_ => hoge.Animate());
これがしたい
マルチスレッドにする必要もなくて、
Animate呼んでしまえばhogeは勝手に動くのでアニメ終了時の処理が書きたい
taskでもRxでも実現できそうで、その違いがわからない
BeginInvoke
>マルチスレッドにする必要もなくて
全部メインスレッド上なの?
なら悩む必要ないじゃん
単なるメソッド呼び出しでいいじゃん
>>512 ゲームだからhoge.Updateはメインスレッドで常に呼び出され続けていて、そこで実際のアニメーション処理が行われる
Animateはアニメーションフラグを立てて、すぐ帰ってきてほしいのです
Task.ContinueWithじゃないの
Rxは知らん
Taskはサブスレッド作るの前提だから向かない
Rxは詳しくないけど確かイベントベースのをTask.ContinueWithみたいに書く方法を提供してるんじゃなかったっけ
.NET 4.5以降ならawait/Awaitable/Awaiterですっきり書けるんだけど
まあ手軽にやるならvoid Animate(Action continuation)でもいいよね
ゲームのアニメーションをフルーエントインターフェイスで個別に実行するのはどうなの
ゲームなら設定ファイルベースでステートマシンでしょ
アニメーションの遷移なんてコードに書くもんじゃない
みなさまお返事ありがとうございます
>>515 勉強になります
> Taskはサブスレッド作るの前提だから向かない
スレッドを使用しないタスク、TaskCompletionSourceというものを発見しました!
これが一番ほしいのに近い気がします
Taskで書いて複雑なことがしたくなればObservableに変換して使うのがよさそう
たしかにコールバックを引数に取るのが簡単ですヽ(^o^)丿
>>516 それをどうやって実装するか、が問題です
>>517 確かにすべて書き出してしまえばどうでもよくなるかもしれません
書き出すのとても難しいように思えますが
VS2013express用でコードを自動ソートしてくれるようなものはありませんか?
コードの自動ソートってなんぞ?
701 デフォルトの名無しさん sage 2014/06/05(木) 23:39:22.37 ID:KqY/r4Jl
expressで使えるコードを自動ソートしてくれるようなのはないかな
705 デフォルトの名無しさん sage 2014/06/06(金) 07:57:12.26 ID:slyOrLRP
コードの自動ソートってなんぞ?
選択範囲のソースを行単位にソートとかじゃね
そもそもExpressはマクロもアドインも使えないから
秀丸でも何でもいいから外部エディタ使えって話だが
ソースっつーかリテラルの部分をソートなんかな
そこだけ切り出してコマンドでソートして戻す、とか
せっかくだからクリップボードの内容をソートしてクリップボードに戻すアプリとか作ったらいいやん
ソースをフィールド、プロバティー、メソッドにカテゴライズした上でアルファベット順にソートするやつでしょ
エスパー大会の会場はここですか?
自動フォーマットのことじゃね?
どうも、CTRL E→Dって押す度に思うことがある。
Microsoft MVP for C#になるにはどうした方がいいですか?
2chやめてコミュニティに入り浸る
能力の高い人が居るコミュニティの方がいいのは確かだ
コピペの元になるサイトを作るといいよ。
534 :
デフォルトの名無しさん:2014/06/08(日) 23:59:53.95 ID:+XojWnnk
アルファベット順にソートしたいなんて思ったことねえな
意思を持って重要なもの関連性のあるものを並べていくだろ
コードを自動でソートなんてお節介としか思えないけど、VSにはクラスのメンバーを
鳥瞰するビューがいくつもあるのにどれもあんまり使いやすくないのはちょっと不満。
わからないではないが設計が根本的におかしいか
そもそも言語仕様からくる問題の気がしないでもない
アドオンでソートできるツールは見覚えあるんだが、仕組み上VS上でやるにはアドオンが必須だからプロ以上じゃないと無理だね
そうすると外部のソースコード整形ツールになるけど見つからいね
ソートがなんの為にあるかといえば、印刷してソース管理するなら便利ではある
ヘルプファイルとかドキュメント書くときにソートしたいと思った事はある
プログラムより先にちゃんとした仕様書作れって話なんだけどな
クラスのメンバとかって意味のある順に並べるのが普通じゃないのか?
クラスの中もカテゴリ別にネームスペースで分ければ良い
アルファベット順にはしなくてもいいが
メンバの種類でソートはしたい
たまに言語仕様上のタイプでまとめたくなる
フィールド
コンストラクタ
ファイナライザ&Dispose
overrideしたメソッド
イベントハンドラ
メソッド
プロパティ
プライベートなコード...
でも機能でまとめたほうが見やすいし書きやすい
機能1
機能2
機能3...
ボタン一つで切り替えができればいいのに
543 :
デフォルトの名無しさん:2014/06/09(月) 15:31:34.91 ID:GLJHLViz
すいません。C#を少しかじった程度の知識で申し訳ありません。前に出たかもしれませんが、
C#のRadioButtonコントロールとCheckBoxコントロールはSHIFTキーの入力を勝手に受け取ってしまうのでしょうか?
ちなみに入力は、フォーム上のKeyDownイベントで受け取っていて、RadioButtonをフォーム上に追加しない場合は入力をとることが出来ています。
MSDNのリファレンスとか他のページ見てもそのようなことは乗ってないのでよくわからない状況です。
勝手に取られないようにする方法とかがあったら教えてほしいです。
別にShiftに限らないけどKeyPreview
545 :
デフォルトの名無しさん:2014/06/09(月) 15:49:27.34 ID:GLJHLViz
>>544さん
フォーム上のKeyPreviewをtrueにしてもダメだったのでそれ以外にも
フォーム上のKeyPressイベントハンドラ―のKeyPressEventArgs.Handledプロパティをtrueにして
他のコントロールでキーボードイベントを受け取らないようにしてもダメでした。。。
RadioButtonは、自分でRadioButtonクラスを派生させて自作していますが、デフォルトのRadioButtonでもダメでした。
何かおかしな処理してるのでしょうか・・・
546 :
デフォルトの名無しさん:2014/06/09(月) 15:52:29.99 ID:GLJHLViz
>>543の話ですが、すいません間違ってました。
SHIFTの入力はとれていますが、Shift+カーソルキーがダメみたいです。
Ctrl+カーソルキーはとれているみたいです。
カーソルの方はフォーカス移動に使われるので標準のキーイベント前に処理される
派生クラス作ってるならProcessDialogKeyをオーバーライドして
処理したくないキーの時にfalseを返すようにする
Windows標準のUIと違う動作になるのでユーザビリティ的には
>>542 機能でまとめたら他人が見た場合や
時間が経って自分のソースを見返すとき
プロパティなどがソースのあちことに点在してたら把握しづらいでしょ
パブリックなメンバさえ見ればどういう機能が備わっているかわかるし
そのように作らなきゃいけない
プロパティグループ内で機能別にわかれているならいいけどね(プロパティウィンドウの表示のように)
549 :
デフォルトの名無しさん:2014/06/09(月) 17:16:47.23 ID:GLJHLViz
>>547さん
ProcessDialogKeyを調べて実装しようとしたところよくわからなかったので、代用としてあげられていた
PreviewKeyDownイベントのPreviewKeyDownEventArgs.IsInputKeyをカーソルキーのみtrueにして解決しました。
フォーカスの移動に使われているなんて知らなかったです。
これでCheckBoxなどの実装も出来そうです。ありがとうございました。
C#で書いたクラスにoperator &を定義したんだが
これをVBから使おうとしたらoperator ANDになっていた
VBでもoperator &として使えるようにする為にはC#側はどう書けばいいの?
VB.netの&演算子はC#の&演算子とは完全に別物で
文字列連結のために特別に用意されているもので、演算子オーバーロードできないっぽい
>>552 VBの&はオーバーロードできるよ
開発環境が手元に無いから確認できないけど実際オーバーロードしてみて逆コンパイルしてC#で真似すりゃいけるでしょ
DBがMySQL環境で、Entity Framework 6.1使えている方いますか?
EF5の時は使えていたんですが、NuGetでEF6.1に上げると動かなくなります。
環境は現時点の安定最新版です。
MySQL Community Server v5.6.19
MySQL Connector/Net v6.8.3
Visual Studio 2013 for Desktop
Entity Framework 6.1
>>553 マジでか、すまんかった
間違ったこと言った責任とって調べた
Public Shared Operator &(ByVal c1 As TestClass, ByVal c2 As TestClass)
↓(ILSpyで変換)
public static TestClass op_Concatenate(TestClass c1, TestClass c2)
だった
本当にこれでいけるのかは試してない
普通にできなかった
VBの&って文字列連結だからC#なら+でしょ。
VBも+で文字列連結できるよ
>>558 VBの+演算子は算術加算限定じゃなかったか?
文字同士なら連結だが、数値と文字だと数値に変換
>>559 少なくともVB7以降はそうじゃないね。
VB6時代はそうだったかもしれない。
Dim i as Integer
i = "1" + "2"
文字同士なら連結、数値と文字でも文字で連結:JAVA
VB6.0 -> C# -> Objective-C(C) -> C++(C) -> Cって変な順番で習得して思ったのは、CやObjective-Cはこの中じゃ言語仕様が特に綺麗だと思う
まぁ俺の好みなんだろうけどC/C++の標準ヘッダや関数/クラス・メソッドの暗号みたいな命名規則が気に入らない
そういう意味ではC#とObjective-Cは好きだな、VBはさっさと消えて欲しい、インタプリタならJsかLispでいいだろと
・・・まさかVB.netの話題が出てたからそれを書きに来たのか?
突っ込みどころは置いとくとして、過去のVBの文法引きずってるからな-、VB.netは
使い手が過去のVBのお作法を引きずってるから仕方ない
jsは消えてもらいたい言語の1つだな。まだvb6の方がいい
そっすね
コントロール配列だけ引きずって貰いたかったかな
C#でも出来るけど、定義すんのが面倒なだけだがw
コントロール配列もどきならコンポーネントで作れそう
要するにデザイナ上で設定したいって事だろ?
そういやVBScriptと言う、js紛いのweb言語が有ったな
VBSはちょっとしたツールを作るのに便利。
HTAを使ってGUIも作れるし。
C#を知ってからは使ってないけど。
Controlクラスの、Tagプロパティについて教えてください。
MSDNには、「 Object クラスから派生した任意の型をこのプロパティに割り当てることができます。」
となっていますが、実際にはOjbectクラスと無関係(ですよね?)のint型やstring型、あるいは自作したクラスも格納できました。
この利用法に問題はありませんか?
MSDNではDataSetクラスの格納が例として上がっていましたが、それほど大きくないデータを関連づけるためには冗長なので他にもっと手頃なものはないかと思った次第です。
この利用法ってどの利用法よ。
intでもstringでも自作クラスでもなんでも好きなものをTagプロパティに自由に格納するということです
Tagには何でも入れられるし使い道は自由だよ
勘違いしてるようだけど、int(=System.Int32)もstring(=System.String)も
正真正銘Objectから派生してる型だ
ボクシングが発生するから正真正銘ではないな
intもObjectからの派生でしたか。
MSDNを見るとSystem.Int32構造体となっていた(構造体は継承できないと思っていた)し、継承階層の表示もなかったので全くの別物かと思っていました。
改めて読んでみると、「ただし、構造体は、基本クラス Object から継承します」となっていました。
まだまだ分からないことばかりです。どうもありがとうございました。
JAVAからだとそうなるよな
すべてのオブジェクトはObjectを継承してるからな
Objectは特別扱いされて、すべてのクラス、構造体が自動で継承するんだ
Objectが特別扱いというより、何も書かなくてもコンパイラがObjectを勝手に継承しやがるだけ
質問に答える気はないが
回答者にはつっかかるようなクズは死んでほしいわ
荒らしたいだけだろ暇人
>>582 いや、本来継承できない構造体とかに関して特別扱い
構造体は継承できないけど
構造体が継承しないとは言ってない
System.Object
System.ValueType
System.Enum
などの特殊オブジェクトは特別な扱いを受ける。
値型をSystem.Objectにキャストすると
Boxingが発生するのも特別な扱いのひとつ。
>>480 どうも。caperのコードが割と綺麗なのでちょっと試してみます。
>>586 そりゃ値型が特別扱いされてるんだろ
それらの型自体はごく普通のクラスだ
割り込んで悪いけど、そんな言葉遊びみたいな議論は不毛だと思うよ
>>582なんか
>Objectが特別扱いというより、何も書かなくてもコンパイラがObjectを勝手に継承しやがるだけ
そういうのを「特別扱い」って言うんでしょw
全てのオブジェクトはクラスインスタンスです(キリッ
あーやっぱこれじゃ駄目だわクラスインスタンス以外もオブジェクトにするから特例作るわ←今ココ
無毛 vs 不毛 燦然と輝くのはどっちだ?
>>588 C#のコンパイラがそういってるのだが
--
public class PointX : System.ValueType { }
test3.cs(x,14): error CS0644: 'PointX' は特殊クラス 'System.ValueType'
から派生することはできません。
>>593 コンパイラのメッセージは知らんが言語仕様ではValueType はクラスでも
そのPointXはクラスじゃないだろ
またくだらねえプライドのバーゲンやってるな
C++/CLIの話する?
598 :
594:2014/06/13(金) 08:35:12.40 ID:oH4BjjWV
>>595 どこを見たのかは知らないが、
ISO/IEC 23272の11章(Types)17章(Classes)18(Structs)では
classキーワードで宣言されたものがクラス
structキーワードで宣言されたものが構造体と定義されている。
値型はクラスじゃない。
ECMA 334も章番号同じ、
マイクロソフトのC#第5版でも章番号は違うが同じ定義
599 :
594:2014/06/13(金) 09:29:05.23 ID:9+pfgQ0i
すまんがなんか寝ぼけたことを言った。
>>598は忘れて
言語が違えば出来たりもする。
J#で構造体(値型)を宣言する場合
public final class PointX extends System.ValueType
{
public int x; public int y;
}
ただしfinalにしないとコンパイルエラーになる。
指定したアプリが起動中に条件分岐に進めたいんですけどうまくいかない
private void timer1_Tick(object sender, EventArgs e)
{
Process[] processList = Process.GetProcessesByName("test");
foreach (Process p in processList)
if (Process.GetProcessesByName("test").Length < 1)
{
comboBox1.Enabled = false;
}
else
{
comboBox1.Enabled = true;
}
これがうまいことfalseとtrueになりません
>うまくいかない
ここはオマエの日記じゃないから
二度と来るな
質問なんて誰もしてない
自分にとって都合のいいようにしか物事を受け取れないようですね
さぞかし生きにくいでしょうなあww
>>601 マジレスすると、processListが空ならforeach内は実行されない
ループ内でProcess.GetProcessesByName("test").Length < 1 を判定しているが何を意図しているのか分からない
ループ中に当該プロセスが終了することを想定しているのか?
このコードであれば
ループに入ったならばほぼ常にcomboBox1.Enabled = true;が実行されると予想される
>>601 うーんもっと確実な方法を提案したいが状況が分からないからな
>>606 ありがとうございます。この例では「test.exe」が実行されるのをタイマーで監視して
プロセスリストで取得できた場合にcomboBox1を使えるようにするといった内容をしようと思っています
foreachをする必要性がない
private void timer1_Tick(object sender, EventArgs e)
{
comboBox1.Enabled = Process.GetProcessesByName("test").Any();
}
これでいいんじゃね
無駄なタイマー止めたい
private void timer1_Tick(object sender, EventArgs e)
{
var proc = Process.GetProcessesByName("test").FirstOrDefault();
if (proc != null)
{
checkBox1.Checked = true;
timer1.Enabled = false;
proc.EnableRaisingEvents = true;
proc.Exited += proc_Exited;
}
}
private void proc_Exited(object sender, EventArgs e)
{
this.Invoke((MethodInvoker)delegate
{
checkBox1.Checked = false;
timer1.Enabled = true;
});
}
あ、ProcessってIDisposableだね
Dispose呼ばなきゃだめなのか?
建前はそうだよ
では一応GetProcessesByName().Any()も.FirstOrDefault()もダメって事で。
>>615 SynchronizingObject使えば
>>611のInvokeは不要だったか
勉強になった
617 :
デフォルトの名無しさん:2014/06/16(月) 02:34:37.95 ID:GvXD/dq8
画像に文字列を入れるプログラムを「どぼん」を参考に作成しています。
パターンAでは正常に文字がレンダリングされるのですが
MSのDocumentを見て自分で指定したパターンBではなぜか文字が入りません。
どこに問題がありますか?
パターンA
Brush b = new SolidBrush(Color.FromArgb(128, Color.Yellow));
パターンB
int i_alpha = 0;
int i_red = 10;
int i_green = 20;
int i_blue = 30;
Brush b = new SolidBrush(Color.FromArgb(i_alpha,i_red,i_green,i_blue));
alpha=0
?
どぼん(爆)
先頭の i_ 醜い
書式改めろ
ハンガリー人め
ブラシ用意しただけで描いてないからだろ
ほんのちょっと前にc#始めたからめちゃくちゃ初心者な質問で申し訳ないんだが
ubuntuでc#のTask.Delayメソッドがコンパイル出来ないんだけどどうやったら出来るようになるか教えてもらえませんか?
monoだろうけど、versionいくつ?
バージョンが足りてないとかそんなんじゃないの
624ですがバージョン覚えてないです。
今職場なので家に帰ってから報告します。
なんでエラーメッセージを晒さないの?
CTP仕様で作られてるんじゃね
Delayは正式リリースの際に今の仕様になったはず
630 :
デフォルトの名無しさん:2014/06/16(月) 18:48:13.85 ID:3j4vY63c
>>618 ありがとうございます。alpha の数字を変えたらレンダリングされる様になりました!
>>620 黙れ。
631 :
デフォルトの名無しさん:2014/06/16(月) 19:04:36.22 ID:3j4vY63c
>>618 因みにですが このアルファ とは一体何の数字を差しているのでしょうか?
ハンガリアンな上にそんなこと知らないのはどうよw
今時そんなのパソヲタでも知ってるよw
っていうか、少しは自分で調べようよw
Alphablend
634 :
デフォルトの名無しさん:2014/06/16(月) 19:20:51.18 ID:sb3TMdFF
だwwwwまwwwwれwwww
>>631 ヘルプ見ないの?
Disposeとか絶対してないよね
ハンガリアンはないわー
スコープ広いならまだしもローカル変数
プログラミング始めたばかりの頃ってコードに個性出したくなるんだよねw
誰でも通る道だよ
ハンガリアンだとintはiなのか
昔nって言ってる人がいてなんの疑問も持たずにしばらく使ってたな
numberの略だったのかな?
いまだにszが何の略なのか分からん
ヌル文字で終わる文字列
.NET的にはSingle-dimensional, Zero-based
ascii zero strings
>>641 .NET的にはそんなプレフィックスをつける作法はないだろ
WIN32APIのネーミングルールだから、P/Invokeだとありかもしれない。
えーとなんだっけモンゴリアンチョップ
なぜボケが通用すると思ったのか
647 :
デフォルトの名無しさん:2014/06/16(月) 23:53:52.82 ID:TN9L7soJ
ハンガリアンの方がどう考えてもコード見易いだろ。
文字列変数にstrとか、ロング変数にlngとか付けるバカは死ぬべき。
ハンガリアンは見にくい
.NETではしかも使うなとされている
初心者はハンガリアンの方が理解しやすい
ハンガリー人が多いから
>>649 >ハンガリアンは見にくい
それシステムハンガリアンの方だよね。
いちにーハンガリアン
インターフェースにIをつける奴って・・・
ハンガリアンで書くならこの場合、c_ か cl だ。
システムハンガリアンはMSも推奨していないだろ。
MSはそういうところが邪悪なんだよ
ハンガリー人はポーランド並みの不当な差別を受けている
MS<ハンガリアンを使え
MS<ハンガリアンを使うな
メンバーフィールドにm_をつけるのはどうなのよ
thisつける派だからm_は邪魔でしかない
private/internalなら好きにしろよ
変数の末尾に$とか付けて型を指定できるVB6最強だな
アプリケーションハンガリアンもいらないから。
フィールドとかプロパティのバッキングフィールドとか、ごく少数の例外にだけプロジェクト横断的なルールを決めて
プリフィクスを付けるのはそれなりに有効だと思うが、あれもこれもプリフィクスを付けるのは有害無益。
少なくとも1画面に収まる範囲なら絶対不要だし、そうでなくてもIDEの補助があれば間違えない
インテリセンスあるから多少コード長くなるのは問題ない
コードが理解しやすいというメリットが上回るならプレフィックスは有用
コントロールはprefixつけてるな
俺もコントロールはつける
タブとかメニューでもMenuEditCutみたいにタブやメニューの名前を先頭につけちゃう
ふつうにCutMenuだな
俺の場合は
「NameTextBox」みたいに後ろに種類を置いてる
C#のデフォルトの命名に従ってる
ToolStripMenuItemはtsmiだよな?
CutToolStripMenuItem
CutMenuItem
キャメルじゃなくてPASCALなのか
tsmiCut
インテリセンスのきかせかたによるな
いろんな種類のコントロールがあるなら
コントロールの種類先につけたほうが探しやすくなるし
ハンガリアンの変なところは、変数にはプレフィックスを付けるのに関数には付けないところ。
だったら最初から付けなくてもいいじゃんと。
C的なスタイルだと多くの場合関数に渡す引数は変数で
戻り値も変数に代入するから変数だけで十分なんだよ
APIだと戻り値はだいたいエラーコードだし
関数は動詞+名詞がWindnwsスタイルだな。OpenCuntみたいに。
開いちゃらめぇ
キモヲタって何で何やってもいちいちキモヲタ丸出しなんだろうな。気色悪い。
Cはファイルスコープとグローバルの間のスコープがないんだから、プリフィクスで
名前空間を作らないと実用的なプログラムは書けないと思うけど。
これは普通ハンガリアンとはみなされないとは思うが。
>名前空間を作らないと実用的なプログラムは書けないと思うけど。
えっ?
なんでキモオタをダシにしないとモノも言えないんだろうね。
ややキモオタだから
>>680 なにコイツ、ネームスペースとハンガリアンごっちゃにしてんの?
馬鹿なの?タヒぬかもなw
>>676 受ける変数で型がわかるから不要なのかもね。
ローカル変数なら近くで宣言しているんだから
すぐに分かるはずだと・・・varを使うC#はちょっと違うが
マウスのせればでるから大丈夫
C#で一つのソリューションに複数のプロジェクトがあるのですが、
単純にソリューションのリビルドを実行すると、
警告 22 この参照を解決できませんでした。アセンブリ "XXXXX" が見つかりませんでした。アセンブリが間違いなくディスクに存在することを確認してください。
みたいなのが沢山出てエラーするのに、
ソリューションのクリーンをやったあとでリビルドすると問題なく行くんですが、何が悪いんでしょうか?こんなの初めてです。
>>687 何をやったらそうなった?
問題が発生する前の状態に戻せないの?
あーその状態になったことあるわ
たしかWindows API Code Packかなんかの一部をビルドしようとしたときかな
どうやって解決したか忘れたから思い出すまでちょっと待って
>>688 デバッグを中止して、ソースを一部修正して、そしてリビルドすると、エラー多発します。
そこでクリーンしてからリビルドをすると問題なく行きます。
ちなみに、デバッグ中止して、ソースを修正せずに、リビルドしても、同じエラー多発します。
ということで、リビルドやビルドをする前に必ずクリーンをしなくてはならない状態になってしまいました。
>>689 情報待ってます。よろしく。
>>690 いやだから、ソリューションにそのトラブルが発生しない状態だった時があるわけでしょ。
そこから何をどうしたらトラブルが発生するようになったのかと。
まあ、たぶん参考にならないと思うけど、以前VS2005(.NET 2.0)のソリューションを
VS2012のに変換した時、似たような状況に遭遇したような気もする。(記憶がはっきりしない)
その時のトラブルの原因は、なぜかソリューションに.NET 2.0と.NET 4.5のプロジェクトが
混在する状態になったためだったように思った。
>>685 いやでも Win32API の頭に :: がついているのは便利だし‥
えっ
::ってC#にもある「演算子」なんですが…
c#で先頭に::付けれるのか?
>::ってC#にもある「演算子」なんですが
どうしてこう、息を吸って吐くようにウソがつけるんだろうか
半島人の血が混じってるから
698 :
デフォルトの名無しさん:2014/06/18(水) 22:59:02.53 ID:3zsV3GA5
嘘吐き呼ばわりしてた奴が嘘吐きだったというオチか
なるほど嘘のソースはわかった
そのページのリンク先にある言語仕様書の
2.4.5と7.3と9.7を読め。::は演算子じゃない
700 :
699:2014/06/18(水) 23:01:49.92 ID:y5UbyY+o
>>699 2.4.5にある通り、字句解析上はどう見てもOperatorだよね
7.3は「式」の構成要素としてのOperatorの話であって、
それ以外が演算子でないことにはならないよ
まあそこは譲るとしても、「息を吸って吐くようにウソを吐いている」とまで言うのは無理があるのは自分でも解ってるよね?
>>702 たったの3行ぐらいきちんと読めないのか
2.4.5を読んだら演算子でなくて区切り記号だとわかるだろアホ
>>697のページの一番上に「:: 演算子」って書いてあるんだけど、MSが間違ってるって話?
>>704 そのとおり
ちなみに「::演算子」という不適切なタイトルではあるけれど
::が演算子だとはひとことも書かれていないし
リンク先のC#演算子の一覧にも::は出てこない
タイトルだけ間違ってんじゃね?
このリファレンスだと「C#演算子」というカテゴリに演算子と構文要素まとめて書いてるみたいだし。
そんなもん間違うかよw
C#2.0で::を追加したときの紹介から公式に演算子と呼んでたわ
メンバ選択の.と同様、こういうのを便宜的に演算子と呼ぶのは全然珍しくない
トークンとしては演算子なんじゃないの
>>707 >公式に演算子と呼んでた
その呼び方がECMAの定義と違うから間違いなんだろ
>>708 トークンとしてはpunctuatorというのが
>>703の2.4.5
MSが演算子と呼んで言語仕様書もMSが書いてるのに間違いって…
言語仕様書を書く上で、式の構文解析において独立したトークンとして扱われるものをOperator、
それ以外のトークンをPunctuatorとして呼び分けると説明しやすいから呼び方を区別してるんだと思うよ
Mono開発陣ですらoperatorと呼んでる
>>709 > その呼び方がECMAの定義と違うから間違いなんだろ
MS のオレオレ言語なんだから MS の方が正しいに決まってるだろ (w
MSもミスだらけだから闇雲に信じるとヤバイぞ
::は広義には演算子。ただし狭義な演算子では含まない。つまりどっちもあってるよ
>>711 おまえは本当に頭が悪いな
そのマイクロソフトの説明
>>697に言語仕様(マイクロソフトの文書)へのリンクがあって
そこでは演算子でないと定義されてるんだよ
::の説明ページが::区切り文字というタイトルだったら意味不明だろ
それ単体で見る場合は::は何らかの機能をもつ独立した要素であると考えるわけで、
C#を使う人のための解説としては、それを演算子と呼ぶのはごく自然なこと
言語仕様はコンパイラ実装者の都合が多分に含まれてるから、それもあくまで一つの見方
いろんなメンバアクセスの方法を紹介するページがMSDNにあったとして
その中で::を使った特定も可能だよという紹介をするんなら区切り文字と呼ぶのもアリだろうね
>>713 > そのマイクロソフトの説明
>>697に言語仕様(マイクロソフトの文書)へのリンクがあって
リンク切れしとるがな (w
> そこでは演算子でないと定義されてるんだよ
どこでどういう風に書いてるか書いてみ
その説明ページ本文じゃあ演算子とは呼んでないんだよね。他の演算子と違って。
まぁ、「()演算子」というページにキャストとメソッド呼び出しと演算順序の指定を
まとめて書いているあたり、言語の定義と厳密に一致しているわけじゃないんだろう。
構文解析上は演算子(正確には演算子または区切り子)
意味解析上は区切り子
でいいだろ
よく考えなくても全然よくねぇなw
もういいよ
久々に大漁だぁ
そんなので「してやった」とか思えるんだから安上がりでいいね。
っていうか、自意識(自分で自分をどう思うか?)が欠如してるって、中二どころか
小5ぐらいで成長止まってるんだなマジで。きっと言ってもわかんないと思うけど。
もういいってんだろキチガイ
基地外クソコテに餌を与えないでください
ホゲコピペで荒らされたらたまらん
Qzは宿題スレのころ俺はわりと応援してたんだけど、
トリがばれてからどうも本人じゃない気がする。
オリジナルの人がまた新トリでやりなおしてくれるんなら、
Qzのほうは完全無視できるんでいいんだが。
いやそういうのいいから
自爆とはいえマイクロソフトに騙されると
ムカついて引っ込みがつかなくなっちゃうよね。
何も演算しないのに演算子なんて呼ばないよ。
どこまでわかって言ってるのかアレだけど、演算子って訳語だからねえ...
文字通り演算だと思っちゃうのもどうかと思うが
C#での::なんて寡聞に聞いたこと無いけど制御文字ってこと?
寡聞にして
>>727 :: が演算子なのはC++だな
演算してないけど演算子ということになっている
>>729 そりゃ「名前空間エイリアス修飾子」だからねぇ
まず名前空間エイリアスを使ってる奴を見たことがない
global::は自動生成コードでは結構使われてる
というか自動生成コード用に追加されたもんだし
COMの方にサンプルがあるけど
C++とVBSのサンプルなんですが。C#はなんでサンプルないんだろ?
まあ仕様見るかぎりオマケみたいなもんだろ
手間かけたくなかっただけとちゃう
よくわからないと言われても
どこが分からないのか分からない
値やテキストをAPIにどう入れるかがわからないです。
10年くらい早い
ぐぐれ
もしくはvbsで作って呼べw
知恵袋やらMSDNフォーラムやらふらっとスレやらと
なかなか手広くやっていらっしゃるようで
宣伝なのかもしれないな
プロパティの自動設定というのを理解するとできるんでしょうか?
そうだったのか。目が㌧です。
掲示板なんて久しぶりに使うから失念していました。申し訳ない。
別スレでは氏ねとまでいわれましたが、大変なことをしてしまったのですね。申し訳ない。
質問です。
現在登録されているWindosサービスとその実行パスの一覧を取得するにはどうすればよいでしょうか。
既に実行されているサービスであれば、そのサービスに紐付いているプロセスから取得可能ですが、
まだ開始されていないサービスの実行パスも取得したいです。
何か良い方法はないでしょうか。サービス管理画面(GUI)からは実行パスは見れるのですが。。。
サービスの列挙 c#
でぐぐれば一覧は一発じゃん。exeはレジストリからとれるんじゃね?
>>751 ありがとうございます。サービスの列挙はServiceController.GetServices();で取得しているのですが、それを元に実行パスの取得方法が分からない状態です。
QueryServiceStatusExを使用すれば関連したプロセスは取得できるのですが、起動していないサービスまで検索する方法が不明ですorz
サービス名がわかったらその名前のレジストリを見れば?
レジストリ舐めればいいんじゃないの
>>749 外部連携がどうとかじゃなくて
あなたC#がさっぱりなんじゃないの
>>753 >>754 ありがとうございます!!
調べたところ、
ローカルマシン\Syste\CurrentControlSet\Services\サービス名\ImagePath
で取れそうです!助かりました><
ふらっとのほうが適切だったんでしょうか?他のマルチポストはMSDN以外消しましたが。
ついでにここからも消えろ
この世から消えろ
この世からは消えませんが、このスレからは消えます。ありがとうございました。
フィールドはprivate前提だから
プロパティならまあ別にinternal範囲で見えてても気にしなけりゃいいじゃん?みたいな
MSってアセンブリ単位のカプセル化は最重要絶対不可侵だけど
アセンブリ内でどうしようがそれは勝手だと考えてるからな
internalとFamANDAssemの違いはアセンブリ内でしか意味を持たないわけで
実用上internalとローカル規約で完全にカバーできるんだから
わざわざ滅多に使わないものを入れて複雑にする必要はないってことなんだろ
マーシャリング理解できて初めてC#できますって言える感じだね
マーシャリング理解の最低限の素養としてC/C++必須だし加えてATLやC++/CLIも必須
いやー.NET奥深いっすわ
小手先の技で一流になったつもりの奴が多すぎる
別に言語がどうとかどうでもいいし
作りたいものが作れればいい
>>767 そんなセンスあるやつ日本人で見たことないねw
シリコンバレーには大勢いるんだろうけど
逆に技術じゃなくてセンスで比較されたら日本人全滅じゃねーの
UIやUXやデザインに関心持っててセンスあるPGとか日本で見たことないね
プログラマもそうだけど、デザイナのセンスの無さも酷い。
綺麗な絵を描くことは出来るけど、UIやUXについてからっきし。
--nologoがデフォルトになってない時点でセンスがない
リボンやメトロのことか
WPのMetroはよく出来てるよ
Windows8(笑)は知らん
打線は決して調子よくない
チャンスで打って失点を防いでるのが大きい
誤爆した
あまり違和感ないな
wpfにチャンスが回ってきた試しがない
学習コストがちょっと高いけど、一度覚えたらFormsに帰れなくなるほど快適なんだけどね
ハマった時はForms以上に地獄に落ちるが
wpfって重いんじゃないの?
パソコンのスペックがクソならそりゃ重いだろうな
レイアウトの計算は重いが、レンダリング自体はむしろ速い気がする。
業務アプリでwpf使ってる所とかあるの?
車屋に何個か納品したけど使ってるのかは知らん
UIの応答性で問題あった?
将来的にRTアプリのウィンドウ化でwpfさんは
お役御免になりそう
Windows StoreのアプリをC#で開発した場合、
バイナリのソースコードが読めないように変わったりするの?
ストアアプリでもソースコード丸見え?
>>787 .NET Native ってのがある。
Androidのアプリはソース丸見えだが、それが普及の妨げになったか?
手間かけてソースを見るほどの価値のあるアプリを作る能力がお前にあるのかどうかが先だ
俺は自分が書いた下手糞なソースを見られてプギャーされたくないから、
難読化くらいのささやかな抵抗はしたい。
大丈夫、そんなのプギャー以前に見向きもされないから
見向きもされなくてもいいんだ。
俺の精神衛生上の問題だから。
まあそういう強迫神経症的な性格を直さない限り、他の何かが「精神衛生上の問題」
のトリガーを引くだけなんだけどね。
>>788 Thanks
.NET Native、名前は聞いたことあったけどStoreではもう実用化されてるのか
.NET NativeでローカルでBuildして
Windows Storeを通さずに自分のHPとかで配布することもできるようになるの?
日本でもSIMロックフリー義務化決定されたようだし
Windows Phoneが普及しそう
C#使いの時代が来た
>>789 ロジック見られるとまずい類のアプリはあるだろう
あと類似アプリとか派生アプリ作られてばらまかれたら大損害だ
>>790 有料のアプリはソースは隠したいよね。
どうでもいいソフトはソースコード公開するけど。
ソース見れるくらいまでならいいけど
そこから簡単にプロジェクトまで復元できて
コンパイルまでできるならいやだな
要するにちょっと改造したものを配布できるとか
そこまで心配するならC++でも安心できないよ
カジュアルハックの範疇を超えてる
WP?
寝言は寝て言うのがおススメ
つーかパクリアプリってソース見て作ってるわけじゃないと思うけど
中華は知らんけど
スマホアプリってアイデア9割で技術的には誰でもすぐ真似できる程度のものが殆どだからね
こんにちは、上の方で
ubuntuでc#のTask.Delayメソッドがコンパイル出来ないんだけど
って質問をしたものですが
バージョンがこれで
$ dmcs --version
Mono C# compiler version 3.2.8.0
コンパイルエラーがこれですー。
1second_deley.cs(10,9): error CS0201: Only assignment, call, increment,
decrement, await, and new object expressions can be used as a statement
なんで出来ないんでしょうか?
cs0201でググればたくさん出てくるんじゃないのか?
GoogleApps自体がMSOfficeのパクリだわな
.NET Nativeは高速化の問題で難読かはわからんな
普通に申し訳程度の難読化をするしかないんじゃない?
ラムダ式使えばそれだけでオジサンには難読化
.NativeってILからマシン語に落ちるから
実質難読化みたいなもんだろ
リフレクションなどでメタデータが残るから
改造目的ならどこで何やってるか見当付けやすいはず
キチンと記述された資料があるわけでもないし
妄想すんのは自由だけど期待を抱くべきじゃねえな
逆に言えば
キチンと記述された資料があるわけでもないのに安心できるってことは
君の求めていることは、君自身の脳内ですらその程度の価値なんだよ
世の中不完全だからこそ回っているのだ。
資料が無いとコードを理解できないって?
お前無能すぎるだろ
そういう奴は価値のある物も作り出せないだろうから
何も心配しなくていいんだろうけどさ
>資料が無いとコードを理解できないって?
>お前無能すぎるだろ
むしろこういう奴が間違いなく無能
俺が誰に対して言っているのかも分かってないみたいだし
脊髄反射するやつのレベルってさもありなん
無脳むけに注釈を加える
.NET Nativeが難読化を行うかどうか
キチンと記述された資料があるわけでもないし
妄想すんのは自由だけど期待を抱くべきじゃねえな
逆に言えば
.NET Nativeが難読化を行うという
キチンと記述された資料があるわけでもないのに
ネイティブというだけで
安心できるってことは
君の求めていることは、君自身の脳内ですらその程度の価値なんだよ
自分の言いたいことが誤解されるのは
自分の言葉が足りないせいが90%だからね。
>>813 無能乙
別に難読化ツールじゃないから、難読化はされないw
だが、native部分に関しては
>>806の通り。改造に関しては
>>807だけど、それはC++でも同じだからたいした問題じゃない
問題はnativeビルドしたらnativeコードしか含まれてないかって点
未対応CPUでも動くように非nativeのも入れてたらそっからソースが見える
確かpreview版公開されてるだろ?それでビルドしてnative以外が含まれてるか調べれば一発で分かるだろ
グダグダ言ってないで自分で解析すればすぐ分かるだろ無能
人工無脳
なんちって
>>817 会話ボットみたいに特定の言葉に反応してんじゃねーよってこと?
linqわけわからない
動的なsql文作り辛い
C#得意な人にはしっくりくるもの?
他で代替できるなら無理に使う必要はない
言語を使いこなしたいのか、ソフトウェアを作りたいのか、よく考えることだ
SELECT条件やORDER BYの切り替え程度ならIQueryable>StringBuilder>式木の順に楽だと思うがなあ
式木wwww
結局理解することなく現場去ります。
本当に申し訳ありませんでした。
823 :
デフォルトの名無しさん:2014/06/30(月) 02:51:43.49 ID:Qrfa8+dQ
コレクションを扱うものだろLINQは
SQLなんか手打ちでいいよ手打ちで
LINQ==クエリ構文みたいな理解が多すぎる
その通りだろ何を言っているんだおまいは
まあ == じゃないだろうけど、LINQ ∈ クエリ構文 でいいかと
ループ文をコレクションに対する操作に置き換えるものだろ
828 :
デフォルトの名無しさん:2014/06/30(月) 19:10:56.90 ID:oWh5Pwys
IEのキャッシュ(やクッキーも)を1クリックで全て削除するプログラムを作ろうとしていますが
思いの他、難航しています。
一方でこんな機能は誰しも欲しているでしょうし、誰かが既に実装していそうです。
もしそういったコードを公開しているサイトをご存知でしたら教えてください。
素のIEでも4クリックで消せるのにご苦労なことだ
>>828 IEでキャッシュと履歴消した後
エクセル開いて
「挿入」
「ハイパーリンク」
ってやってみ
832 :
デフォルトの名無しさん:2014/06/30(月) 19:52:24.22 ID:oWh5Pwys
FindFirstUrlCacheEntry
DeleteUrlCacheEntry
834 :
デフォルトの名無しさん:2014/07/01(火) 07:27:53.82 ID:4NT6zKWx
質問です。
C#でオブジェクトのメソッドから
自分自身を書き換える事は可能でしょうか?
イメージ的には以下みたいな感じです。
class Hoge{
string s;
void Method(Hoge h){
this = h;
}
}
できません
>>835 そうですか。
素直に各メンバーにコピーします。
つ Clone()
838 :
デフォルトの名無しさん:2014/07/01(火) 11:20:08.69 ID:45icpyH1
DictionaryクラスでSTLのmapで言うところのlower/upper_boundのようなことはできますでしょうか?
Where使えばいいんじゃね
コンソールアプリを実行した場合に表示されるコンソールウインドウの
大きさって、表示された後でSetWindowPosなどで変更できますが、
表示される前から、大きさを決めておくことは可能でしょうか?
要するに実行して表示されるた時点で、希望する大きさで表示したいのですが。
簡単にできるのであれば方法を教えてください。
Console.WindowWidth
Console.WindowHeight
誘導されたので同じ質問なのですが
デスクトップに貼り付いて最小化されないウィンドウの作り方を
どなたか分かる方いましたら教えて頂けないでしょうか?
今まで試した事は
Program Managerを親ウィンドウのハンドルにすると
一応、ウィンドウの最小化を回避出来たのですが
これだとエアロや半透明化が出来なくなったので
他の方法か、もしくは対処方法があるのであれば知りたいです。
あとはWndProc()をオーバーライドして
WM_SYSCOMMANDを処理して以降の処理を無効化する方法も教えて頂いたのですが
Win+Dや"デスクトップの表示"等をすると最小化してしまうみたいです。
何がしたいかというとFencesみたいなソフトが作りたいと思っています。
>>841 回答ありがとうございます。でも、その方法でも一瞬、デフォルトの
大きさで表示されたあとで、
Console.WindowWidth
Console.WindowHeight
で指定したサイズに変わるようです。
やっぱり簡単にはできないのでしょうかね。諦めます。
なんで、C#ってフィールドとプロパティの両方がなの?
プロパティだけあればよくね?
ふらっとでやれ
関数とフィールドを一緒にされてもな
初心者おつ
C#に関数はない
どうしてこう、息を吸って吐くように嘘をつけるんだろうか
鯰に鱗はない
女にチンコはない
>>847 function memberとanonymous functionがある
>>848 >>850 C#に関数、functionがないのは事実だろ
functionをmethodと一緒にするな
anonymous functionなんてないわw
anonymous method, 匿名メソッドならあるけどな
基本的な用語すら正確に覚えてないのかよ
>>851 7.15 Anonymous function expressions
An anonymous function is an expression that represents an “in-line” method definition.
どうしてこう(略)
URL貼らなきゃC# Language Specificationの場所も分からん奴が言語仕様語ってたの?
マイクロソフトのC# Language specification 5.0だろ
ISO/IEC 23270読んだのか?
ISOの方なら少なくとも「関数は無い」なんて言うはずもないんだが
ラムダや無名関数ってクラスというより文脈に紐付くから、
メソッドと呼ぶのは確かに違和感あるな
呼び方はどうでもいいが、汎用デリゲートの醜さを見たら、
関数はないと言っても過言ではないな。
関数とメソッドの違いが分からない土方参上
>>860 さぁ仕事に戻るんだ。終電もないから、帰らなくていいんだぞ。
OOPって概念を取り入れた時に関数をメソッドと呼ぶようにしただけですね
実質一緒じゃないですか?
OOPは OOPLでなくても出来る
>>863 で?
実用レベルにする為に、OOPLのインタプリタかコンパイラを実装する以外の方法が有るとでも?
OOPLの機能がないと出来ないことだと思ってるんだね。
Cの奇怪なマクロライブラリ思い出した
>>862 OOはオブジェクトにメッセージを伝えるためのメソッドをメソッドと呼ぶんだよ
メッセージを送る先もないただの処理の塊をメソッドと呼ぶことは不適切
>>859 汎用デリゲートってActionとかFuncのこと?
たくさん作っておいてくれて便利じゃん
自分で定義したりMethodInvokerとかいろんなクラスに散らばってたのが一箇所で済むし
>>867 Mathクラスの奴は、明らかにクラスと関係なく右から左へデータ流しているだけだが関数じゃなくてメソッドだよね
メソッドとファンクションの違いはOOPLかどうか程度でしょ
機械語レベルで違いがあるのか?
C#でデータベースプログラムの勉強しようと思ったのですが、Sql ServerとかOracleとかMySQLとかある上に、
LINQとかDBアダプターとかADOとかDAOとか色々用語が出てきて混乱してます。
初心者が勉強するのに無難な組み合わせ?は何でしょうか?
sqlite
>>872 SQL Server Express 2012のManagement Studio付きのをインストールして
ADO.NETのSystem.Data.SqlClientを使って接続
DataAdapterは使わない
先に言え、バカちんが
SQLの勉強したいなら
>>873 動かしたいだけなら型付きデータセット
ADO.NETとLINQの基礎を抑えてるならEF
>>871 初心者のころはthird partyのDB用configファイルの書き方が
わからないから、最初はDBはSQL Server Expressからがいい
Entity Frameworkとの相性も一番いい(バグが少ない)
SQL Server 2014 Express with Toolsがいい
with Toolsは、Management Studioついてる。
DBのアクセスは、MSが今推奨してるのはEntity FrameworkとLINQ使う方法だよ
AdapterとかDataSet使うのは古い
>>873 もう2014も出てるんだし、2014でいいんじゃないの
DataAdapterは使わないほうがいいね
初めてJava触ってるんだが、構文というか言語は問題ないけどライブラリとディレクトリ構成がC#と比べて非常に使いづらく感じる
VSとNetBeansの差なのか.NETとJavaの差なのか
実用か教条かの思想の差だと思う
素だとファイルのコピーも出来ない連中だし
Javaは名前衝突解決の機能が弱い故のパッケージ名にURL付けるルールと
ソースのディレクトリ階層をパッケージ名に合わせなきゃいけないルールのコンボが最凶すぎる
頭おかしいだろあれ
同感
JNI使おうと思ったらなんだよあれwww
>パッケージ名にURL
まあイカレてるとは思うが
同じようにイカレてる GUID よりは判り易くて良いな
判り易いってのは所有者が一目で判るって意味ね
レジストリに階層構造もなく GUID 並べられてるの見るたびに萎える
わかりやすいけど同じライブラリの異なるバージョン同士を管理できないんだよな
結局JavaもJigsawで.NETのAssemblyの仕組みをそっくりそのままパクろうとしてるよ
XAMLのアレだってURIじゃんw
WPFは思想先行でつくったっぽいから盛大にバカにしてるよ俺は