코드에서 FileMp3Reader
을 열면 Action
이라는 단어가 사용 된 다음 람다 식, 메서드를 사용하여 내부에 배치됩니다."액션"키워드는 무엇입니까?
키워드 Action
은 무엇인가요? file.Create
방법 내부에서 수행중인 작업은 무엇입니까?
var mp3Path = @"C:\Users\ronnie\Desktop\mp3\dotnetrocks_0717_alan_dahl_imagethink.mp3";
int splitLength = 120;
var mp3Dir = Path.GetDirectoryName(mp3Path);
var mp3File = Path.GetFileName(mp3Path);
var splitDir = Path.Combine(mp3Dir,Path.GetFileNameWithoutExtension(mp3Path));
Directory.CreateDirectory(splitDir);
int splitI = 0;
int secsOffset = 0;
using (var reader = new Mp3FileReader(mp3Path))
{
FileStream writer = null;
Action createWriter = new Action(() => {
writer = File.Create(Path.Combine(splitDir,Path.ChangeExtension(mp3File,(++splitI).ToString("D4") + ".mp3")));
});
Mp3Frame frame;
while ((frame = reader.ReadNextFrame()) != null)
{
if (writer == null) createWriter();
if ((int)reader.CurrentTime.TotalSeconds - secsOffset >= splitLength)
{
writer.Dispose();
createWriter();
secsOffset = (int)reader.CurrentTime.TotalSeconds;
}
writer.Write(frame.RawData, 0, frame.RawData.Length);
}
if(writer != null) writer.Dispose();
}
단일 매개 변수를 갖고 값을 반환하지 않는 메서드를 나타내는 해당 형식입니다. – Khan
람다 식과 델리게이트 형식에 대해 배워야합니다. – SLaks
대리인 : http://msdn.microsoft.com/en-us/library/system.action%28v=vs.110%29.aspx – Guffa