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

■ このスレッドは過去ログ倉庫に格納されています
2012/04/26(木) 21:32:32.95ID:RzRn9VkL0
ふらっとVisual C#,C♯,C#(初心者用)

このスレッドは
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

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

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

関連スレ
ふらっとC#,C♯,C#(初心者用) Part91
http://toro.2ch.net/test/read.cgi/tech/1335089085/
C#, C♯, C#相談室 Part71
http://toro.2ch.net/test/read.cgi/tech/1332575004/


こんな感じでソフトウェア板に立てたらどうかな
2012/05/17(木) 22:08:47.35ID:t3KcC4L10
>>227
>>219の1はよくわかんないけど
Form1.csのプロパティにしたりするような、Form1.csを肥大化させるようなことはやめて
各機能ごとに自作クラスを作る
ボタンを押したらテキストを改変してテキストボックスに入れる、って言う処理だったら

class Hoge
{
 public Hoge(Button btn, TextBox tb)
 {
  btn.Click += (sender,e) => tb.Text = Model.Hoge(tb.Text);
 }
}

まあこんな感じで、その機能に必要な物があったらこのクラスにどんどん入れていく
機能ごとに必要なコントロールをまとめたクラスを作ってGUIの複雑さを軽減する
ロジックはModelのクラスに分離する
2012/05/17(木) 22:21:48.71ID:/wFJphTP0
なるほど、わかりました
自分が現在記載している処理だとtextbox1のプロパティを直接いじっているので、自作した他クラスからForm1.cs内のtextbox1のプロパティをいじるには、
Form1.csのプロパティにしてしまうのが簡単かなと思ったので、「textbox1のプロパティをgetsetでForm1.csのプロパティとした上で」という書き方になっていました
自作クラスの引数にした方がよいということですね
2012/05/17(木) 22:22:25.54ID:/wFJphTP0
ありがとうございました
2012/05/19(土) 18:01:20.21ID:6aeuHIE80
test
2012/05/20(日) 00:02:48.81ID:do1RvL6p0
FlowLayoutPanelの様にAddで加えたコントロールを自動に並べるコントロールで、
並べるコントロールの位置を次は下、次は右、次は下といったように選べるコントロールはないでしょうか?


□□□
□□

みたいな感じで並べたいです
コントロールのLocationを直接指定していくしかないでしょうか
2012/05/20(日) 00:24:59.24ID:DcSMnQWK0
そのぐらい自分で計算していれりゃええが
2012/05/20(日) 00:26:57.61ID:do1RvL6p0
今、調べてるとTableLayoutPanelとかもあったのですが、普通に計算した方がよさそう・・・
素直に計算して入れます
2012/05/20(日) 04:48:51.35ID:TJmnCt7r0
>>232
FlowLayoutPanel.SetFlowBreakでいいんじゃない?
乗っかってるコントロールから設定するならFlowBreakね。
2012/05/20(日) 18:34:02.07ID:DcSMnQWK0
var url = "http://www.hoge.com/";
var elem = new XElement(XmlConvert.EncodeName(url), "a");

これで落ちるんだけどなんでだろう
urlを変換してXNameに使うのは無理なんだろうか
2012/05/20(日) 18:40:59.47ID:DcSMnQWK0
ああ普通に出来たわ
EncodeLocalNameでいいのか
238名無しさん@お腹いっぱい。
垢版 |
2012/05/20(日) 19:07:20.83ID:vz/Du8h20
>>237
MSDNのその辺のドキュメントは、読んでて混乱するからな・・・
おつかれ。
2012/05/20(日) 21:09:09.28ID:CjyZExuu0
>>235
レスありがとうございます
結局TableLayoutPanelで対応しました
2012/05/22(火) 22:15:56.28ID:Zemo3eRi0
Windowsフォームのデータバインディングについてだが、
例えば、こんな感じにtargetControlのValueプロパティにViewModelのDataプロパティをバインドさせるとして、
targetControl.DataBindings.Add( "Value" , ViewModel , "Data" );

ViewModel 側でINotifyPropertyChangedを実装して、
OnPropertyChanged("Data");のようにして呼び出したときにUIとスレッドが異なっていると、
例外(InvalidOperationException)が発生する。まあ、これは、当然といえば当然なのだが、
ViewModelでは、UIスレッドを意識しないようにしたいし、コントロールのValueプロパティなんかでも
スレッドの違いを意識しないようにしたい。

今のところ思いついた方法が、コントロールが生成された直後にコントロールのSynchronizationContextを
取得してViewModelに関連付けてOnPropertyChangedでSynchronizationContextを通して
PropertyChangedイベントを呼び出すという方法だが、どうにも良い方法とは思えない気がする。

これ以外に何か良い解決方法は、ありますか?
2012/05/23(水) 02:42:36.72ID:qa6OyKBe0
NotifyPropertyChangedみたいなのはうまい解決をしようとして
逆に問題を複雑にしてるだけなような気がする
2012/05/25(金) 10:35:25.98ID:aQ/syKw30
オブジェクトを保存するときXElementに変換してXMLで書き出しているのですが、
XElementに変換する一般的な書き方というのはありますか?
IXmlSerializableのようなものがあれば知りたいです。よろしくお願いします
2012/05/25(金) 10:42:07.95ID:0UAn5u+k0
>>242

http://smdn.jp/programming/netfx/serialization/2_xmlserializer/
2012/05/25(金) 12:31:54.65ID:aQ/syKw30
>>243
XmlSerializerは手間の割りに融通が利かないのでちょっと・・・
IXmlSerializable.WriteXml()のように再帰的にXElementを回収してくれるような仕組みがすでにあるかどうか知りたかった感じです
2012/05/25(金) 12:53:36.41ID:Hmr1Uhd40
>>244
IXmlSerializable.WriteXmlを使えばいいのでそんなもん必要ない
XmlWriterの途中にXElementの内容書き込んだり普通にできるからな
2012/05/25(金) 14:45:18.12ID:T48ZmvCh0
ContextMenuStrip に縦方向のスクロールバーを付けたいのですが、なんとかならないでしょうか。

アイテムが多くて画面に収まらないときはメニューの上下端に▲、▼が現れてそれを押すと
スクロールしますが、それではなくスクロールバーを付けたいのです。
ComboBoxのメニューのようなスクロールバーです。
VisualStudioでコードを入力しているときにメソッドがポッと出てくるメニューのようなスクロールバーです。

public partial class UserControl1 : ContextMenuStrip
{
public UserControl1() {
InitializeComponent();
this.VScroll = true;
}
}
こんなこともやってみましたがダメでした。
2012/05/25(金) 17:19:46.33ID:54oiiha70
なんとかならなくもないだろうけど。
プロパティひとつ設定すればというお手軽な方法はないな

ToolStripDropDownから派生して、スクロールバー表示時のアイテムの幅自前計算するとか
もしかしたらToolStripから派生して自前でToolStripItemの管理するはめになりそう

むしろFormから作ったほうが簡単な予感がする
BorderなくしてListBoxでも全体に貼り付けてとか
2012/05/26(土) 10:47:45.49ID:/w9VkIqN0
>>247
やはりお手軽にはできなそうですか。
ListViewを張り付けたFormを試してみようと思います。
フォーカスが外れたら、消える。
ListViewのSelectedIndexChangedで何かがクリックされたとみなして
メニューが選択されたときの動作を行う。
こんな感じでしょうか。
2012/05/26(土) 16:44:22.18ID:Oznxncr00
画像のバイト列をImageに表示したいのですが真っ白なままでどうもうまくいきません。
ローカルファイルをSourceにUriで指定すると表示されるのでXAML側の記述は問題ないと思うのですが・・・

↓こんなコードですがどこに問題があるのでしょうか?

http://ideone.com/7puAt

何かアドヴァイスいただけると助かります。
2012/05/26(土) 21:50:26.72ID:qEPXpQfe0
速度に関する質問です
下記の同じ結果を出す、ちょっと複雑な処理があったとします
(内容はfor文中にrを元にして、下記の通り、int型変数R、G、Bを作成します
  r→R、G、B 0→0,0,0 1→1,0,0 2→0,1,0 3→0,0,1 4→1,1,1 5→2,1,1 〜)

for (int r = 0; r < 100000; r++)
{
int R = r / 4; if (r % 4 == 1) R++;
int G = r / 4; if (r % 4 == 2) G++;
int B = r / 4; if (r % 4 == 3) B++;
}

for (int r = 0; r < 100000; r++)
{
int R = r / 4 + (r + 3) % 4 / 3;
int G = r / 4 + (r + 2) % 4 / 3;
int B = r / 4 + (r + 1) % 4 / 3;
}

この処理を10回処理させたところ、処理速度は10回とも0.0016代と0.0024代になりました

一例
if文タイプ
00:00:00.0016217
複雑計算タイプ
00:00:00.0024181

if文を挟む方が遅いイメージだったのですが、複雑な計算をさせた方が遅いものなのでしょうか?
2012/05/26(土) 22:03:04.02ID:DTKuZabL0
もっと繰り返し回数多くしたほうがいいんじゃないの
差が微妙すぎてよくわからない
あとr+2 r+1 rじゃないの同じ結果にしたいんだったら
あと計算結果とっといてどこかで使わないと最適化で捨てられちゃうんじゃない

複雑な計算させたほうが早かったりif文のほうが早かったりいろいろあると思うけどね
最適化の具合とかで
252249
垢版 |
2012/05/27(日) 00:38:22.87ID:fLxELx8b0
自己解決しました。
↓のようにしたら表示されました。

http://ideone.com/7p4hu

BeginInitの後に
bi.CacheOption = BitmapCacheOption.OnLoad;
を入れることで表示されました。
2012/05/27(日) 09:54:33.99ID:HSQgQMmy0
formとメトロってワンクリックで切替できますかね?
2012/05/27(日) 10:00:40.57ID:clOyRCuk0
>>250
その程度の距離のif文ならL1の中にすっぽり納まるからなあ

むしろ/や%の方が重いはず
2012/05/27(日) 10:03:45.45ID:clOyRCuk0
>>250
これって速度的にはどうなる?
for (int r = 0; r < 100000; r++)
{
int R = r>>2; if ((r & 0x3) == 1) R++;
int G = r>>2; if ((r & 0x3) == 2) G++;
int B = r>>2; if ((r & 0x3) == 3) B++;
}
256名無しさん@お腹いっぱい。
垢版 |
2012/05/27(日) 10:08:42.69ID:clOyRCuk0
その前に最初の計算式二つは結果が等価じゃねーだろw
257名無しさん@お腹いっぱい。
垢版 |
2012/05/27(日) 10:45:25.60ID:clOyRCuk0
ちょこっとコード書いてて気になったんだが最後のパターンがなんか納得いかない結果になる
http://ideone.com/t4Tro
258名無しさん@お腹いっぱい。
垢版 |
2012/05/27(日) 10:48:20.87ID:clOyRCuk0
あ、すまんこれで納得いく結果になった
http://ideone.com/FW5ED
2012/05/27(日) 11:12:54.46ID:clOyRCuk0
シフト演算使ったほうが早いね
http://ideone.com/o1mSO
260250
垢版 |
2012/05/27(日) 14:31:19.39ID:j8A7jdt/0
みなさんレスありがとうございます
ケースバイケースなんですね
/や%を2回程度余分に使うより、if&++;の方が早いとのだと思っておきます
盲目的にifはできる限り減らした方がいいと思い込んでました・・・

シフト演算を使うという発想はありませんでした
というより、普段使ってないので、コードの意味がわかってないので、コードを参考に勉強してきます
2012/05/27(日) 16:43:36.10ID:GiQAzp3Q0
switch(r % 4) にすると?
262名無しさん@お腹いっぱい。
垢版 |
2012/05/29(火) 14:07:21.53ID:/PVv+z9w0
WPFアプリとKinectアプリ間で文字列の送受信を行いたいのですがどうすればよいのでしょうか?
Process.Start("Kinectアプリ名.exe");でKinectアプリをWPFアプリ側から起動した後、文字列の通信を行いたいと思っています。
IPCを用いたプロセス間通信を行えばよいのでしょうか?
知っている方がおられましたらご教授をお願いいたします。
2012/05/29(火) 16:37:54.74ID:2RvCxbWa0
このスレで質問することではないかもしれないのですが
どこで聞いていいのかわからないので質問します><
DirectShow.Netでフィルターの設定をしたいのですがどのように
して設定してあげればよいのかわかりませんorz
解説サイトも動画・静止画のキャプチャの仕方位までしか掲載
されていません。ざっくり、このメソッドを使えば程度でかまいませんので
よろしくお願いします。
264名無しさん@お腹いっぱい。
垢版 |
2012/05/30(水) 05:04:06.91ID:AggJDhf10
>>262
そんなマニアックな状況、やってみなきゃわからんのだから
IPCでまずはやってみなよ。
2012/05/30(水) 21:18:00.04ID:M2GA61XI0
c#でトランプの数当てゲームを作りたいのですが、ホームアプリケーションでいいなでしょうか?
2012/05/30(水) 21:52:42.67ID:QkV5fjWR0
いいな いいな にんげんて いいな
2012/05/30(水) 21:55:54.36ID:to+QgKiM0
初心者ならコンソールアプリケーションでゲームの中身だけ作ってGUI(Form)つけるのおすすめ
2012/05/30(水) 22:15:53.58ID:5ZOuXXtf0
Formでいいんじゃね
ゲーム作りたいならUnityとかゲームエンジンとか使った方がいいと思うが、自力で数当てゲームくらい作れた方がいいかもね
2012/05/30(水) 22:49:56.75ID:zW0msQ/R0
>>265
これを見れば作れる
http://www.nicovideo.jp/watch/sm13022762
270名無しさん@お腹いっぱい。
垢版 |
2012/05/31(木) 02:21:11.40ID:rXSZyiw00
>>264
レスどうもありがとうございます、とりあえずもう少し試行錯誤してみますね!
2012/05/31(木) 09:25:01.60ID:WULY2UZX0
てst
2012/05/31(木) 15:01:27.70ID:VYK3XZ290
なんで難しい質問ばっかなのこっちは
2012/05/31(木) 15:17:39.08ID:jGAKMQam0
本スレだからな
274名無しさん@お腹いっぱい。
垢版 |
2012/05/31(木) 15:52:12.18ID:unpCDp6t0
難しいというか、シチュエーションが限定的な質問が来るね。
まああっちで聞いても、本筋と関係ないところで喧嘩おっぱじまるからだろう。
2012/06/01(金) 00:01:35.63ID:p1bYUXat0
IDは偉大、変な自演がないだけでも捗るな
2012/06/01(金) 18:51:36.27ID:tSECQl9H0
シチュエーションが限定的なのはしょうがないんじゃないかな
普遍的な問題は大抵ググればなんとかなるだろうし
>>216の質問をしたのは俺だけど
ググっても同じ問題にはまっている人が見つからないのは本当に困る・・・
2012/06/02(土) 08:13:25.59ID:8F3osLeN0
てst
278名無しさん@お腹いっぱい。
垢版 |
2012/06/03(日) 23:02:26.26ID:9cE78MGH0
C#でDirectxを使おうとしたら、遅延通知が出たのですがどうすればいいですか?
2012/06/04(月) 01:15:23.77ID:dVdSCbBH0
遅延通知って何?
2012/06/04(月) 06:00:16.63ID:MKF8PCbd0
この言語のリファレンスマニュアルって糞見づらいMSDNしかないの?
2012/06/04(月) 08:46:10.03ID:SO+LzFoe0
さらに見づらい上に古いPDFであればありますよ
あなたがC#のリファレンスと.NETのリファレンスを混同していないことが前提ですが…
2012/06/04(月) 11:06:38.28ID:tdHet/L00
てst
2012/06/04(月) 15:07:32.53ID:eBbL6cVl0
MSDNから必要な情報を見つけ出して、珍妙な自動翻訳に動じず英語版見に行くようになったら一人前。
2012/06/04(月) 20:30:54.41ID:amclDH490
.netの翻訳は人間がやってるらしいぞ
2012/06/05(火) 23:42:14.54ID:0HX/yiCx0
デリゲートがよく分からないのでJavaScriptで例えて説明してください
2012/06/06(水) 00:07:44.80ID:E/iZIMwt0
関数オブジェクトのようなもの
2012/06/06(水) 02:20:14.29ID:8bMay9C00
>>285

http://jaba.johnson.co.jp/
2012/06/06(水) 02:26:05.25ID:E/iZIMwt0
>>287
それはJavaだ。
JavaScriptと一緒にすんなw
2012/06/06(水) 06:44:05.39ID:Wke9K+FZ0
>>287
×Java
○Jaba

JavaScriptは使ってるようだが
2012/06/06(水) 11:43:22.64ID:T2vSLGVJ0
てst
2012/06/08(金) 00:17:06.02ID:SjP/JzaM0
てnd
2012/06/08(金) 21:26:45.75ID:H4JMKmsI0
カスタムコントロールの中のComboBox(Bとする)の.Itemsに他のクラスからアクセスしたいと思っています
当該Itemsに別データの配列を突っ込みたいので、カスタムコントロールのプロパティにしようかと思ったら、setの記載で読み取り専用だからできねーよカスと怒られます
なにかよい方法はないでしょうか?

public ComboBox.ObjectCollection B_.Items
{
set
{
B..Items = value;
}
get
{
return B..Items;
}
}
2012/06/08(金) 21:33:08.47ID:KTgDzfcK0
>>292
ComboBox.DataSourceプロパティ
2012/06/08(金) 22:43:38.32ID:H4JMKmsI0
下記で期待する動きになりました
ありがとうございました
getもDataSourceにせんでいいのかな?と迷いましたが、デザイナー上の入力を考えるとこっちの方がベターぽいのでこれで行きます

public object B_.Items
{
set
{
B.DataSource = value;
}
get
{
return B.Items;
}
}
2012/06/08(金) 23:36:24.17ID:1FPwfIgl0
てst
2012/06/09(土) 22:24:13.82ID:/l9t5PUy0
Visual Studio Express 2012 for Windows Desktop
http://blogs.msdn.com/b/visualstudio/archive/2012/06/08/visual-studio-express-2012-for-windows-desktop.aspx
2012/06/09(土) 22:39:56.78ID:km1yHHW40
そりゃまあ、普通に考えたら出ないとおかしいよね
2012/06/09(土) 22:41:49.99ID:/l9t5PUy0
だってVC++あるしなあ
2012/06/09(土) 23:50:34.37ID:8fI3WDv10
Formは入ってるの?
2012/06/10(日) 13:44:32.26ID:JcRdqHi90
C#どころかプログラミング始めたての初心者で申し訳ないのですが質問させてください。

if (A != B)
{
return;
}
do();



if (A == B)
{
do();
}

では同じ処理になると思うのですが、どちらを用いるのが一般的なんでしょうか
2012/06/10(日) 13:56:41.08ID:+ns6eJGu0
前者はガード句と呼ばれる書き方で、主にifのネストが深くなった時に使う
ifが1段しかないのなら後者
2012/06/10(日) 13:58:07.44ID:t7lhSWC+0
しっくり来る方でいいでしょ
2012/06/10(日) 14:04:31.24ID:+ns6eJGu0
しっくりこないんですぅ
2012/06/10(日) 14:36:26.02ID:JcRdqHi90
>>301
>>302

レスありがとうございました。参考にさせてもらいます
2012/06/10(日) 14:41:36.15ID:JcRdqHi90
重ねて質問すみません

txtBox1.Clear();
txtBox2.Clear();
txtBox3.Clear();

これを繰り返し構造でスマートに書きたいのですが、変数等を用いれば可能でしょうか
2012/06/10(日) 14:43:50.00ID:t7lhSWC+0
var array = new[]{ tb1, tb2, tb3 };

foreach(var tb in array){ tb.Clear(); }

とかかな
2012/06/10(日) 14:45:11.20ID:+ns6eJGu0
FormコンストラクタのInitializeComponent()の後ろで配列にでも入れておけ
foreachで繰り返せる
2012/06/10(日) 14:59:08.22ID:JcRdqHi90
なるほど!同じ型の配列に入れておけば良かったんですね
ありがとうございます
2012/06/10(日) 21:05:08.87ID:RMEDkwv20
製品版のVisualStudioってメンバー変数のプリフィックスに_とかつけられます?
2012/06/10(日) 21:45:47.86ID:+ns6eJGu0
むしろなぜ付けられないと思うの?
2012/06/10(日) 22:10:12.18ID:RMEDkwv20
Expressでできないからですね
Formのコントロール変数に自動で_をつけてくれたら便利だと思いまして
2012/06/10(日) 22:15:58.50ID:+ns6eJGu0
全然意味合いが違うじゃねえか
質問を略すな

Pro版でもできません
2012/06/10(日) 22:19:28.22ID:MHePrPj+0
自動でってところがミソか
2012/06/10(日) 23:40:57.57ID:RMEDkwv20
ありがとうございます。やっぱり無理でしたか・・・
315名無しさん@お腹いっぱい。
垢版 |
2012/06/14(木) 07:03:26.20ID:98NsRCek0
Formを継承したクラスがいくつかIDisposableなオブジェクトを持っていて、それらをDisposeしなければいけない場合
どこに書いたらいいんでしょうか。

Form1.Designer.csの方にFormのオーバーライドされたDisposeメソッドがありますが、
そこに追加しちゃってもいいのでしょうか。(デザイナの方に影響与えたりしません?)

それともDisposedイベントでやるべきなんでしょうか。
316名無しさん@お腹いっぱい。
垢版 |
2012/06/14(木) 07:36:22.23ID:A0uxVl2o0
1. そもそもインスタンススコープで扱うべきか考える
 実はメソッド単位で扱えるものなんじゃないの?という回帰。

2. コンポーネント化することもちと考える。
 Formと同じ寿命のDisposableなオブジェクトがあるってことは、
 Formにロジックを詰め込みすぎてないか?
 ロジックを然るべきレイヤに分けて、コンポーネント化しちゃえばいんじゃね?という発想。

3. Disposeしたいというのなら
 .Designer.csのオーバーライドされたDisposeメソッドに書いちゃって大丈夫。
2012/06/14(木) 08:37:45.34ID:SlYrQktU0
前から思ってたけどcomponentsフィールドっていつ使われるんだろ
あれに追加されたらFormが破棄されるとき一緒にDisposeしてくれるよね
2012/06/14(木) 09:19:19.33ID:98NsRCek0
>>316
ども
3でいかさせて頂きます

たとえばフォントオブジェクトをフォーム上のボタン等に個別に適用した場合
明示的にDisposeさせるよい方法がないので困っていました

フォーム閉じて参照が切れればいつかGCされるさ、とか
アプリケーションが終了した時点で解放されるからいいやん、とか
それだけでなんともならないシナリオもあるのに、と……
2012/06/14(木) 10:01:27.49ID:oUOmZZHy0
初心者なのでこちらで質問させてもらいます。
Aというクラスを継承してBというクラスを作成したのですが、Aの中の一部のフィールドやメソッドを継承したくない場合、Bの中でどうのような記述をすれば簡単に実現できるでしょうか?
目的は単にBのインテリセンスにそのメソッドなりを表示させたくないだけなのですが。
よろしくお願いします。
2012/06/14(木) 10:07:06.46ID:SlYrQktU0
>>319
Aの該当メンバーをprivate指定する
Bのほうから継承しないという指定はできない
C++ならできるけど煩雑すぎてC#には採用されなかった
2012/06/14(木) 10:10:46.97ID:WOJH/6WO0
private new ベースクラスのメソッド名(引数も合わせる ...){}

これで一応できるけどキャストしたらベースクラスのは呼び出せるわね
2012/06/14(木) 10:48:44.80ID:SlYrQktU0
newの使い道がよくわからないんだけど、virtual指定されてないメソッドをオーラーライドしたいときでいいの?
2012/06/14(木) 11:08:28.11ID:WOJH/6WO0
オーバーライドするとベースクラスにキャストした時もオーバーライドしたメソッドが呼び出せる
つまりベースクラスのメソッドを上書きできる

newの場合はベースクラスにキャストするとベースクラスのメソッドが呼び出される
上書きしたわけじゃなくて同じ名前のメソッドが定義されたので
前のが呼びだせなくなったという感じ
2012/06/14(木) 12:25:35.45ID:+pekMVIj0
abstract オーバーライドしろ
virtual  オーバーライドしてもいいよ
未指定   できなくは無いがnew付けろよ。
2012/06/14(木) 13:20:39.57ID:SlYrQktU0
>>323,324
ありがとう。つまりポリモーフィズムとはまったく関係ない機能なのか
どんな用途で使うんだろ・・・
2012/06/20(水) 23:24:01.56ID:W/4WFKKT0
>>325
一番は、後から基底クラスに派生クラスのメンバと被るメンバが追加されたときに
意図せずオーバーライドしてしまうのを防ぐため
その意味では別にnewは無くてoverrideだけでいいんだが、overrideの付け忘れなのか
わざとやってるのか区別するためなんだろう
2012/06/21(木) 12:27:26.65ID:K9S0VvT90
visual c#で、ボタンを押すとテキストボックスに入力した英文(長文)をもう一つのテキストボックスに文を並べ替えた状態で出力するアプリを作ろうとしています。
文を並べかえるというのは、単語の並べ替えではなく、複数の文の1文1文を1つと見て、それらの文を並べ替えるという意味です。

考えているアルゴリズムとしては、入力文を初めから一文字ずつ読み取っていき、ピリオドが出た瞬間に初めからその部分の文字列を 文字列1 に代入。
続いてその次の位置からまた一文字ずつ読み取っていき、ピリオドが出た瞬間に、その部分を 文字列2 に代入・・・と繰り返し、最終的にn個の文字列をランダムに並べ替えたものを出力する、というふうに考えています。

C#で作る場合このような流れで作るのがよろしいでしょうか?その場合どのような文字列操作関数を使用していけばいいのでしょうか。
また、他により効率的な方法があればご教示お願いします。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況