回答編集履歴
2
文章の修正
answer
CHANGED
@@ -5,13 +5,13 @@
|
|
5
5
|
[out パラメーター修飾子](https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/out-parameter-modifier) と [return ステートメント](https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/return) はそもそも **違う機能** です。
|
6
6
|
ですから、どちらが推奨なのか比較するのは正しくありません。
|
7
7
|
|
8
|
-
メモリ効率を減らすという目的のためにどちらかを選ぶのではなく、それぞれの機能が持つ ** 本来の目的に応じて使い分けてください
|
8
|
+
メモリ効率を減らすという目的のためにどちらかを選ぶのではなく、それぞれの機能が持つ ** 本来の目的** に応じて使い分けてください。
|
9
9
|
|
10
10
|
目的に応じてコーディングを行うことで読みやすいコードができます。
|
11
11
|
そして、読みやすいコードは一目で動きがイメージできますから、バグが発生しにくいし、直しやすいです。
|
12
12
|
|
13
|
+
それを意識した上で、よく考えてください。
|
13
|
-
|
14
|
+
より合理的なのは、メモリの効率ではなく **開発の効率** を上げることではないでしょうか。
|
14
|
-
そして開発効率を意識する方がより合理的ではないでしょうか。1度、立ち止まってよく考えてみてください。
|
15
15
|
|
16
16
|
> outとreturnのどちらが効率がいいのでしょうか?
|
17
17
|
|
@@ -32,4 +32,4 @@
|
|
32
32
|
C# におけるメモリ管理を知ること自体は大切です。しかし、よほどメモリを短時間で大量に割り当てたり解放したりするようなコードを書かなければ大きな問題になることはありません。
|
33
33
|
ですから、通常のアプリケーション開発では深くまで考慮する必要はありません。
|
34
34
|
|
35
|
-
しかし、それ以上にメモリの効率を気にするのであれば、言語
|
35
|
+
しかし、それ以上にメモリの効率を気にするのであれば、他の言語を検討に入れることも考えてください。
|
1
追記
answer
CHANGED
@@ -1,7 +1,18 @@
|
|
1
1
|
> outとreturnのどちらが推奨される書き方ですか?
|
2
2
|
|
3
|
-
|
3
|
+
**両者を利用する目的が間違っている** と思います。
|
4
4
|
|
5
|
+
[out パラメーター修飾子](https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/out-parameter-modifier) と [return ステートメント](https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/return) はそもそも **違う機能** です。
|
6
|
+
ですから、どちらが推奨なのか比較するのは正しくありません。
|
7
|
+
|
8
|
+
メモリ効率を減らすという目的のためにどちらかを選ぶのではなく、それぞれの機能が持つ ** 本来の目的に応じて使い分けてください**。
|
9
|
+
|
10
|
+
目的に応じてコーディングを行うことで読みやすいコードができます。
|
11
|
+
そして、読みやすいコードは一目で動きがイメージできますから、バグが発生しにくいし、直しやすいです。
|
12
|
+
|
13
|
+
大事なのは、メモリの効率ではなく **開発効率** ではないでしょうか。
|
14
|
+
そして開発効率を意識する方がより合理的ではないでしょうか。1度、立ち止まってよく考えてみてください。
|
15
|
+
|
5
16
|
> outとreturnのどちらが効率がいいのでしょうか?
|
6
17
|
|
7
18
|
[C# のメモリ管理](https://ufcpp.net/study/csharp/rm_gc.html) を学ばれることを強くお勧めします。
|
@@ -11,11 +22,14 @@
|
|
11
22
|
強いていうならば、for で使われているカウンタ変数 i 分のメモリ (int型なので4byte) が割り当てられるぐらいでしょうか。しかし、ガベージコレクションによって割り当てられたメモリはいずれ解放されます。
|
12
23
|
|
13
24
|
また、strList から string 型の要素を削除しています。この処理については、むしろメモリの使用量が減るはずです。
|
14
|
-
以上のメモリ事情の観点から、funcA と funcB の効率に大差はないでしょう。
|
15
25
|
|
26
|
+
以上のメモリ事情の観点から、funcA と funcB のメモリに関する効率に大差はないでしょう。
|
27
|
+
|
16
28
|
----
|
17
29
|
|
18
30
|
そもそもの話、**C# でメモリの効率を気にしても仕方がありません。**
|
19
|
-
よほどメモリを短時間で大量に割り当てたり解放したりするようなコードを書かなければの話にはなりますが。通常のアプリケーション開発では強く考慮する必要はありません。ですから、メモリ管理を知ること自体は大切です。
|
20
31
|
|
32
|
+
C# におけるメモリ管理を知ること自体は大切です。しかし、よほどメモリを短時間で大量に割り当てたり解放したりするようなコードを書かなければ大きな問題になることはありません。
|
33
|
+
ですから、通常のアプリケーション開発では深くまで考慮する必要はありません。
|
34
|
+
|
21
|
-
しかし、それ以上にメモリの効率を気にするのであれば、言語選定の段階から見直すべき
|
35
|
+
しかし、それ以上にメモリの効率を気にするのであれば、言語選定の段階から見直すべきと思います。
|