Environment.NewLine을 파일을 작성할 때 개행 문자로 사용하는 라이브러리로 작업하고 있습니다. Unix 형식의 파일을 작성해야하고 개행 문자를 변경하려고합니다.Environment.NewLine의 값을 변경할 수 있습니까?
Environment.NewLine의 값을 변경할 수 있습니까?
다른 모든 아이디어 (파일 게시 생성을 변환하는 것을 제외하고)?
Environment.NewLine을 파일을 작성할 때 개행 문자로 사용하는 라이브러리로 작업하고 있습니다. Unix 형식의 파일을 작성해야하고 개행 문자를 변경하려고합니다.Environment.NewLine의 값을 변경할 수 있습니까?
Environment.NewLine의 값을 변경할 수 있습니까?
다른 모든 아이디어 (파일 게시 생성을 변환하는 것을 제외하고)?
Environment.NewLine의 값을 변경할 수 있습니까?
아니요. 작성할 플랫폼을 알고있는 경우, 각 플랫폼에 대한 클래스를 만들고 자체적으로 구현할 수 있습니다. 가장 단순한 경우 다음과 같이 표시됩니다.
public abstract class Platform { public abstract string Newline { get; } }
public sealed class Unix : Platform {
public override string Newline { get { return "\n"; } }
}
등. 그런 다음 적절한 클래스의 인스턴스 만 사용하면됩니다.
그건 내가 생각한거야. 내 라이브러리가 변경되지 않기 때문에 전환 게시 파일 만들기를 수행 할 것입니다. 감사! – TheSoftwareJedi
MSDN에 따르면 Environment 클래스는 봉인되어 있으므로 값을 변경하기 위해 상속받을 수 없습니다. 내 지식은 당신이 할 수 있었던 유일한 길입니다. 또는 Environment 클래스를 확장하는 부분 클래스를 만들 수도 있습니다. 후자를 시도한 적이 없으므로 제대로 작동하는지 확신 할 수 없습니다.
NewLine 속성은 정적입니다. 원하는만큼 확장 할 수 있습니다. – Kugel
Environment.NewLine 속성 상수이므로 변경할 필요가 없습니다. 내가 추천 할 수있는 가장 좋은 방법은 이것이 사용되는 모든 곳을 자신의 상수로 바꾸는 것이다.
타사 라이브러리가 스트림에 쓰거나 파일 이름을 전달합니까?
전자의 경우 MemoryStream을 전달한 다음 개행을 바꾸어 원하는 것을 얻을 수 있습니다. 후자에서는 임시 파일에 기록한 다음 실제 파일로 스트리밍 (라인 끝을 바꾸면서)합니다.
환경 .Newline은 .Net 런타임을 호스팅하는 런타임 환경의 개행 문자를 반환합니다. 개행 문자를 다른 플랫폼의 개행 문자로 변환 할 때는 사용하지 말아야합니다.
변환을 위해 고유 한 클래스를 구현하는 것이 좋습니다.
신의 축복을 ... System.Environment
네임 스페이스의 모든 의미를 완전히 바꿀 수는 없습니다.
당신이하고 싶은 일은 특정 OS (어떤 응용 프로그램을 실행중인 환경)에 상관없이 환경을 작성하는 것입니다. 당신이 처음에 사용해야하는 것이 아닙니다.
웹 출력을 위해 NewLine의 값을 <br />
으로 변경해야했던이 문제가있었습니다.
우리 수업에 사용할 다른 속성을 만들어야했습니다. 주변에는 정말 방법이 없습니다.
원하는 경우 개행 문자를 수동으로 코딩 할 수없는 이유는 무엇입니까? – ryeguy
그건 내 도서관이 아니야 – TheSoftwareJedi