特定のディレクトリから音楽ファイルをロードし、これらを操作して保存する C# Windows Forms アプリケーションを構築しています。
音楽固有のメソッド (関数) を持つカスタム クラスがあります。特定の引数でこれらのメソッドを呼び出すために、メインフォームクラスにインスタンスを作成しました。メソッドは、動作するデータ (ファイルパスなど) を必要とするだけでなく、場合によっては、アプリケーション オプションからいくつかの値をロードする必要もあります (つまり、アプリケーションが特定のディレクトリからどの音楽ファイル拡張子をロードする必要があるか)。これらのオプションをロードする最善の方法は何ですか?
メインフォームクラスでオプションクラスのインスタンスを作成し、インスタンス全体を呼び出したすべての関数 (メソッド) に渡す必要がありますか? または、オプション クラスのインスタンスをカスタム音楽クラスに格納する必要がありますか?
メインクラス:
public partial class mainForm : Form
{
private MusicFunctions mf = new MusicFunctions();
public mainForm()
{...}
private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
...
mf.loadMusicFiles(path, true);
// btw what's the best approach to load data into form objects (i.e. DataGridView)? Should I pass those as arguments to my functions or create a new object in my custom function and return it as a function return value?
}
private void optionsChangeButton_Click(object sender, EventArgs e)
{
// I would have to create functions inside musicFunction class to be able to change options
int a = 10;
mf.ChangeOptions(a);
...
}
}
MusicFunctions クラス
public class MusicFunctions
{
private MyOptions options;
public class MusicFunctions()
{
options = new Options();
}
public void loadMusicFiles(string filepath, bool includeSubfolders = false)
{
foreach (string ext in options.Extensions)
{
....
}
}
}