ふらっとC#,C♯,C#(初心者用) Part57at TECH
ふらっとC#,C♯,C#(初心者用) Part57 - 暇つぶし2ch855:デフォルトの名無しさん
10/04/03 14:39:53
var x=0.0としたとき、xの型はfloatですか?doubleですか?
組み込み型には使うなと教えられたんですがこれだけは気になったのでお願いします。

856:デフォルトの名無しさん
10/04/03 14:43:58
やってみればいいじゃん。

857:デフォルトの名無しさん
10/04/03 14:44:33
>>855
URLリンク(tsushima.2ch.at)

ちなみに気になる型とか返り値の型とか知りたければ
標準の物なら大体こうやって確認できるよ

858:デフォルトの名無しさん
10/04/03 14:45:27
しもうた
カーソル消えてるけど
x.ToString();
のxの上でカーソル止めてるから

859:855
10/04/03 14:48:37
>>856-858
なるほど、勉強になりました。
どうもありがとうございました。

860:デフォルトの名無しさん
10/04/03 14:51:32
>>859
というかc#で小数点をそのまま書くとdouble,
0.0Fという感じでFをつけるとfloat

861:デフォルトの名無しさん
10/04/03 14:53:24
>>855
860の助言を参考にして、ついでにリテラルとその型の概念も把握しておこう。


862:デフォルトの名無しさん
10/04/03 14:55:24
便乗で悪いんだけど、質問させてくれ
floatの方がdoubleよりも速度が遅くなると聞いたんだけど理由がさっぱりわからん
doubleの方が扱う桁数が大きいんだから遅くなるんじゃないのか?

863:デフォルトの名無しさん
10/04/03 14:57:43
>>862
ならない。最近のCPUじゃ割り算以外の処理はどちらも1クロックで終わってしまい、
速度上の差は見られない事の方が多い。

864:デフォルトの名無しさん
10/04/03 14:59:56
>>862
それはCPUによるよ

865:デフォルトの名無しさん
10/04/03 16:58:41
Microsoft Parallel Extensions to .NET Framework 3.5ってもうDLできませんか?
もし直リンなどあれば教えてください

866:デフォルトの名無しさん
10/04/03 17:04:52
>>865
それは『Parallel Extensions to .NET Framework June 2008 CTP』のことだろう?
Parallel Extensionsが.NET 4.0の機能になったことはMSの公式決定なんだから今更どうにもならんだろう。

ここには「Reactive Extensions を見よ」なんて書いてあるが。
URLリンク(blogs.msdn.com)

仮にそんなコンパチライブラリがあったとしても、余計な混乱を招く結果にしかならないだろうよ。

867:デフォルトの名無しさん
10/04/03 18:13:26
ある程度作ってたプロジェクトの中から部分的に切り離してクラスライブラリを作る場合って
スマートにやる方法ないかな?

868:デフォルトの名無しさん
10/04/03 18:16:15
>>867
名前空間の単位で整理して、
名前空間の単位でクラスモジュール化する。

869:デフォルトの名無しさん
10/04/03 18:23:17
そういうのじゃなくて、クラスライブラリ用プロジェクト作った際のソースの移動とかね・・

870:デフォルトの名無しさん
10/04/03 18:28:49
>>869
基本的に自己完結するようにクラスライブラリを書いていれば、
単にプロジェクトを分けて本体側で参照設定するだけで
そのまま動くようになってるんだから、
スマートにやる方法もないだろ。

上手くいかないなら設計が悪いだけ。

871:デフォルトの名無しさん
10/04/03 18:31:28
変数のインスタンスから、その変数の変数名を取得する方法はある?

int a;
string b = a.(メソッド);

みたいにやると、b に "a" って入るみたいな。
無理だと思うけど、C# だとちょっと期待してしまう。w

872:デフォルトの名無しさん
10/04/03 18:41:00
>>871
変数の名前というのはプログラミングの都合上便宜的に与えるものに過ぎず、
実行時にはなくなってしまうものだ。

一方、デバッガで止めると表示してくれるが、あれはpdbファイルにその情報が記述されている。

873:デフォルトの名無しさん
10/04/03 18:42:43
intとかは無理じゃね?
クラスになるとNameがあるけどあれもつけなくても内部管理的には問題ないから
おそらくハンドルみたいなので管理されてるんだと思うしなあ

intだとそのハンドルに相当するものくらいしかないんじゃね?

874:デフォルトの名無しさん
10/04/03 18:52:45
いや・・・もっとそのプログラム的な話じゃなくて・・・・

プロジェクト作ってフォルダ作って元のソースを移動して
既存の項目としてプロジェクトに入れて・・・という
やり方しかないのかなあって話


あとクラスライブラリとして分離した場合デバック用とリリース用
を別途分けてリンクさせるような設定はないんだろうか?

C++だと普通にあったんだがC#の場合それっぽい項目が見当たらない

875:デフォルトの名無しさん
10/04/03 19:57:02
>>874
>プロジェクト作ってフォルダ作って
それのどこに問題が?
むしろ異なるアセンブリのソースコードはフォルダ分けしておかないと不便だぞ。

>あとクラスライブラリ
同じソリューションでクラスライブラリとメインプログラムを管理しておけば、
ビルドモードの切替で勝手にクラスライブラリの切り替えもやってくれる。

876:デフォルトの名無しさん
10/04/03 20:00:45
>>874
それ以上のどんなバカチョン機能があれば満足するんだろう。
まあ、ファイルの移動はプロジェクトエクスプローラで
ドラッグ&ドロップしてもできるよ。

あと、ソリューション内のプロジェクトの構成(Release/Debug)の連動は
構成マネージャで設定する。

877:デフォルトの名無しさん
10/04/03 20:04:24
>>875
ああ、すまんEEで開発してたのでソリューションの下で複数プロジェクト作れるとは思ってなかった

878:デフォルトの名無しさん
10/04/03 20:06:10
>>876
>>877でも書いたけど俺が想像してたのは

ソリューションA プロジェクトA

とあって
プロジェクトAの一部を

ソリューションB クラスライブラリB
として切り出すしかないと思ってたんだ
すまんすまん

879:デフォルトの名無しさん
10/04/03 20:11:25
複数プロジェクト入れられないソリューションがこの先生きのこるには

880:871
10/04/03 20:40:35
thx
やっぱり無理なんだね。

881:デフォルトの名無しさん
10/04/03 22:00:04
>>863
処理が一律1クロックなのは一部の大型機の話
パソコン用のCPUはそこまで単純じゃないし速くもない

キャッシュがヒットしたという前提で
intの足し算、引き算は0.33クロック、掛け算は0.5クロック、割り算は23クロックかかる
IEEE754形式の浮動小数点だと単精度でも倍精度でも時間は変わらなくて
加減算で1クロック、掛け算が2クロック、割り算が32クロック

882:デフォルトの名無しさん
10/04/03 23:55:24
>>880
URLリンク(blogs.msdn.com)
pdb2xmlのソースコードから学べるものがあると思うけど。
デバッガ作るわけでもなければそんな必要ない気がする。

883:デフォルトの名無しさん
10/04/03 23:55:44
【FPU】 浮動小数点 【SSE】
スレリンク(tech板)
float 使うヤツはドシロートかおぢさん
スレリンク(tech板)

884:デフォルトの名無しさん
10/04/04 06:01:22
>>881
結局のところ大容量キャッシュと高クロック化でごまかしてるだけで
x86の本質はそれほど変わってないのか

885:デフォルトの名無しさん
10/04/04 06:56:58
floatはベクトル演算器を使う場合にはそっちの方が早い。

886:デフォルトの名無しさん
10/04/04 10:11:33
ちと質問させてください。
VS2003.NETのC#を使用してプログラムしています。

参照の追加でdllを読み込み、プロパティでローカルコピーをTrueにして、コンパイル。
この時に、EXEと同じフォルダにdllがコピーされるのですが、
コピーされる場所を変更できるのでしょうか?

EXEと同じフォルダ内に、DLLというフォルダを作成し、
コンパイル時にDLLフォルダにdllがコピーされてほしいのです。

よろしくお願いします。

887:デフォルトの名無しさん
10/04/04 10:16:49
ビルドイベントで移動するとか

888:デフォルトの名無しさん
10/04/04 10:21:08
>>886
アプリケーション設定ファイルでアセンブリの読み込みフォルダを指定することができる。
ただし実行プログラムのサブフォルダのみ。

これはユーザーに配布するときの話で、
開発中はそういったことをやると却って話が面倒になるので
exeとdllを開発中にフォルダ分けしてしまうようなことは考え内容がいいと思うよ。

889:デフォルトの名無しさん
10/04/04 10:25:36
>考え内容がいいと思うよ。
考えないほうがいいと思うよ。

失礼。

890:デフォルトの名無しさん
10/04/04 11:30:53
>>884
クロックを上げるのは、主にコスト面の問題で限界に来てしまったので
今はパイプラインの段数とコア数の増加とバス幅の拡張でごまかす方向になってきてる。
だから1命令が1/2クロックとか1/3クロックなんていう中途半端な時間で処理できてしまう。

あとは実行環境の64bit化でlong/ulongの計算が一気に速くなったぐらい。

891:デフォルトの名無しさん
10/04/04 11:33:14
パイプライン段数はここ数年逆に減少したとか言ってたような

892:デフォルトの名無しさん
10/04/04 11:33:46
いい加減スレ違い。

893:デフォルトの名無しさん
10/04/04 11:36:56
クラスライブラリで公開するクラスってpublicじゃないとだめなんだっけ?

894:デフォルトの名無しさん
10/04/04 11:39:17
           ,,,_  _ァュ,,..__
        ィチュ::ミミ:.:三彡:.:: :.:.:ヽ
        /::彡'':.: :.::/:.:{{.::r‐‐ ::_:.: :.:..、
      ,ィ /:.: /:..: ::{{:..川||::!     ヾ::;;:、
     ,ィ:.: ::.: /:. :: 川:.:ヾ:.:.!{::      ヽ::!
   ///:.: :.:.:||ll: :.: .::.:.:ヾ::.::.i       ':!
   !:|:.:::ミ:: :.;;;川:.: :.:巛、ヾ::! 、       l
   ゙::ミミ h::. :;:.::||l|:.:: :.}}::!l {{ ヾ  _,,...ィ r'' 、
     ゙::ミミ:.: ::.;:.:ミミヾ:.: :.:| ヾ、  '´  ,  マ
     ヾ:: .:.:ミミ三 :.:州リリ    _,,..rテ'  ヽ
      ヾ::;ィ'´ ̄`''ヾ州!         ,.  ヽ
        ゙レ '⌒r ィ ,;;. ..        .:' ,rィ ’
         ヽ し  :.: ..         、  ヽ
       ,,ハ`ー- ..ィ            _,.. ィ
      ィ:::! \   ヽ.          ィ{:::...
       /:::::!   \    ` - ..__       丿::::::ヽ
    /:::::::ヘ    \      ` ーァ-一'::::.:::.:::.::.!ヽ
   /:::::.:..:::::::::ヽ    \      リ::. :::.:.:.:.:::.:.:.:.::::!:::.::!

      轌山相太郎 [そりやまそうだろう]
     (群馬.明治一九年~昭和一七年)

895:デフォルトの名無しさん
10/04/04 11:50:18
>>894
さんきゅー

896:デフォルトの名無しさん
10/04/04 13:37:36
ifで済むようなところでも例外を使ったほうがいいんでしょうか?

897:デフォルトの名無しさん
10/04/04 13:38:44
ifで済むならifで済まして下さい

898:デフォルトの名無しさん
10/04/04 13:39:47
状況にもよるんじゃね?
継続可能なところのエラー程度ならifで判断してもいいだろうけど
継続しても仕方ないようなところは例外でいくとか

899:デフォルトの名無しさん
10/04/04 13:58:19
>>896
コールスタックの呼び出し階層から一気に抜け出したい場合は面倒だから
エラーを返さず例外処理で実装してしまう場合もあるよ。

他に、既に例外処理を書いていて、普通にエラーを返すより
エラー自体を例外処理にしてしまった方が楽に実装できる場合か。

そういったことでないなら、通常のエラーを返す実装にしておいた方がいい。

900:デフォルトの名無しさん
10/04/04 14:03:03
例外やエラーに関してもパターンが必要だと思う今日この頃。

俺はpublicメソッドでもなけりゃ自分で投げることは少ないなあ。
引数なんかは渡す前に確認するし。

901:デフォルトの名無しさん
10/04/04 14:05:51
ただprivateメソッドの中でエラーチェックしてないってことはないよ。
Assert入れてるから。

902:デフォルトの名無しさん
10/04/04 14:19:34
そうですかよかったね

903:デフォルトの名無しさん
10/04/05 11:58:36
しかしこの例外ネタは1スレに2回ぐらいは出るな

904:デフォルトの名無しさん
10/04/05 12:01:05
明確な回答を返しづらいからじゃねーの
ほとんどマイルールだもの

905:デフォルトの名無しさん
10/04/05 12:03:31
確かにお決まりパターンてないよな
ソフトの作りで例外でさくっと処理しちゃう場合もあるし
エラーコードとる場合もあるし

みなさんどうしてますかっていうよりこういうコードなんですがって
晒せる範囲でコードを見せてくれるといいんだけどな

質問の仕方の問題もあるな

906:デフォルトの名無しさん
10/04/05 12:33:12
ライブラリとして自分以外に提供するのか
自分で使い切るのかでも変わってくるし

907:デフォルトの名無しさん
10/04/05 12:57:19
こういう時に自称プロが出てきて語ってくれればいいのに。
要らん事にばっか口出すからなー。

908:デフォルトの名無しさん
10/04/05 13:04:44
仕事で3日だけC#のアプリを初めて作った自称プロの俺に言わせれば、
そのときの気分、テキトー

909:デフォルトの名無しさん
10/04/05 13:06:10
そういえば2chのほかに専門系の質問できるような場所ってあります?
なんか人減ってるしすぐ規制するしでw

910:デフォルトの名無しさん
10/04/05 13:09:17
URLリンク(stackoverflow.com)


911:デフォルトの名無しさん
10/04/05 13:09:42
今回のもかなり大規模っぽいねぇ
相談室の方も3日くらい放置状態だわ

912:デフォルトの名無しさん
10/04/05 13:10:33
ブラクラかと思うような名前だ>stackoverflow.com

913:デフォルトの名無しさん
10/04/05 13:33:21
>>909
日本語でもいくらかある
自分でぐぐってると、そんな質問はありえないと思うんだけど

914:デフォルトの名無しさん
10/04/05 13:33:25
まっとうなサイトだし有用な情報もごろごろしてるけど、
如何せん名前のイメージが良くない…というか悪いんだよな

915:デフォルトの名無しさん
10/04/05 15:03:50
>>910
ありがとう

>>913
いやあるにはあるんだが、なんていうかオンラインゲームの古参がいっぱい居るギルドに
入るようなちょっとやりにくさがあるんだよな・・・

その点2chは気軽っていうか

916:デフォルトの名無しさん
10/04/05 15:04:51
NumericUpDown を継承したユーザコントロールを作成しています。
Enterイベント・OnEnter・OnGotFocus 内でそれぞれ、
Select(0,Text.Length)・(Controls[1] as TextBox).SelectAll()・OnDoubleClick を
全ての組み合わせで試してみましたが、
フォーカスを得た時にテキストを全選択させることができません。
その他にしていることはTextAlignをRightにすることと、
配置先(元?)で、小数点5桁・変更幅0.001と設定しているのみです。
前述の機能を実装する方法を教えてください。

917:デフォルトの名無しさん
10/04/05 15:05:37
列挙型(大正、昭和、平成、)を後で追加出来るように
テキストファイルの"大正、昭和、平成、"を読み込んで宣言するにはどうすればいいですか?

918:デフォルトの名無しさん
10/04/05 15:07:36
おっと質問忘れるところだった

fileIo関連でwindowsの改行 0x0d0x0aを0x0aにするにはどこいじってましたっけ?

919:デフォルトの名無しさん
10/04/05 15:21:29
>>918
TextWriter.NewLine

920:デフォルトの名無しさん
10/04/05 15:24:02
>>919
TextWriter.NewLine = "\n";
こんな感じでしたよね?

ありがとうございます。

921:デフォルトの名無しさん
10/04/05 15:59:43
>>887-889
早速の回答ありがとうございました。
結構な手順を踏む必要があり、大変そうですね。

> exeとdllを開発中にフォルダ分けしてしまうようなことは考え内容がいいと思うよ。
なるほど、分かりました。
一通りの開発が完了し、配布する際に読み込み先を指定する事にします。

ありがとうございました。

922:デフォルトの名無しさん
10/04/05 21:09:42
DataGridView で、教えてください。

スクロールバーの表示設定を行う ScrollBars だったかがあったと思うのですが、
これで垂直スクロールバーを消すとマウスのスクロールボタン?による
スクロールを行えなくなります。

垂直スクロールバーを消していてもスクロールボタンによるスクロールを行えるようにすることは出来ませんか?

923:デフォルトの名無しさん
10/04/05 21:11:45
ホイール?

924:922
10/04/05 21:20:12
あ、そう。それです。

925:デフォルトの名無しさん
10/04/05 21:43:34
便乗質問。
DataGridViewでセルをコピーペーストでデータを移せるようにするにはどうしたらいいの?
できれば縦方向に複数のセルを同時に選択した状態で
コピペできるようになるといいんだけど。

926:デフォルトの名無しさん
10/04/05 21:57:42
クリップボードへはDataGridView.ClipboardCopyModeをtるえにすればいい
クリップボードからはシコシコ実装するしかありません

927:デフォルトの名無しさん
10/04/06 11:10:24
質問があります。
WPFで、使わないテキストボックスを、テキストがからのときには表示しないようにしようと考えました。
if (textBox.Text == null || textBox.Text == "") textBox.Hide();
としたら、textBoxにはHideはないらしいんですけど、
こういう場合どうしたらよいでしょう?


928:デフォルトの名無しさん
10/04/06 11:13:15
Visibility

929:デフォルトの名無しさん
10/04/06 11:16:19
WPFは専門じゃないけどさくっと見た限りでは>>928(先を越された

textBox1.Visibility = Visibility.Hidden;
textBox1.Visibility = Visibility.Collapsed;
上二つの違いは要素を表示しない上にレイアウト予約がどうのってあったな
マウスカーソルのせるとざっくりとした説明でたよ

textBox1.Visibility = Visibility.Visible;

930:デフォルトの名無しさん
10/04/06 12:34:44
>>928-929
さすがふらっとC#。
できました。マウスで出ますね。
ありがとうございました。



最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch