"\ N" এবং পরিবেশের মধ্যে পার্থক্য e নিউলাইন


উত্তর:


203

প্ল্যাটফর্মের উপর নির্ভর করে। উইন্ডোজে এটি আসলে "\ r \ n"।

এমএসডিএন থেকে:

নন-ইউনিক্স প্ল্যাটফর্মগুলির জন্য "\ r \ n", অথবা ইউনিক্স প্ল্যাটফর্মগুলির জন্য "\ n" ধারণকারী একটি স্ট্রিং।


5
কোন ইউনিক্স প্ল্যাটফর্মটি .NET মাইক্রোসফ্টে চালিত হয় এটির নথিতে? (মানে, মনো থেকে একটি অংশ।)
জ্যাক

10
@ জ্যাক আপনি এমন একটি ফাইল লিখতে পারেন যা ইউনিক্স প্ল্যাটফর্মে খোলা হবে। অথবা প্যাকেজে পাঠ্য পাঠানো যা কোনও ইউনিক্স প্ল্যাটফর্মের মাধ্যমে গৃহীত হবে। এবং কয়েক মাসের মধ্যে। নেট ইউনিক্স প্ল্যাটফর্মগুলিতে চলবে। এটি ইতিমধ্যে শুরু হয়েছে
জন দেমেট্রিও

সুতরাং কেবল স্পষ্টতার জন্য: অ-ইউনিক্স প্ল্যাটফর্মে Environment.NewLineরয়েছে \r\nতবে \nএকে "নতুন লাইন "ও বলা হয়। কেন তারা কেবল উত্তরটিরটিকে এর আরও সুপরিচিত নাম "লাইন ফিড" দ্বারা কল করে এবং এই বিভ্রান্তিটি কাটিয়ে উঠেনি? তারা ব্যবহার করতে পারে \l
rory.ap

157

এর যথাযথ বাস্তবায়ন Environment.NewLineউত্স কোড থেকে :

নেট 4.6.1 এ প্রয়োগ:

/*===================================NewLine====================================
**Action: A property which returns the appropriate newline string for the given
**        platform.
**Returns: \r\n on Win32.
**Arguments: None.
**Exceptions: None.
==============================================================================*/
public static String NewLine {
    get {
        Contract.Ensures(Contract.Result<String>() != null);
        return "\r\n";
    }
}

উৎস


নেট কোর বাস্তবায়ন:

/*===================================NewLine====================================
**Action: A property which returns the appropriate newline string for the
**        given platform.
**Returns: \r\n on Win32.
**Arguments: None.
**Exceptions: None.
==============================================================================*/
public static String NewLine {
    get {
        Contract.Ensures(Contract.Result() != null);
#if !PLATFORM_UNIX
        return "\r\n";
#else
        return "\n";
#endif // !PLATFORM_UNIX
    }
}

উত্স (ইন System.Private.CoreLib)

public static string NewLine => "\r\n";

উত্স (ইন System.Runtime.Extensions)


10
হ্যাঁ :) কোনও কারণে আমি NET বাস্তবায়নটি একটি বিশাল জটিল ফাংশন হিসাবে প্রত্যাশা করছিলাম
developerbmw

এই উদাহরণে উত্সটির সরলতা বিবেচনা করে, সম্ভবত এটির উত্তর হওয়া উচিত।
ক্রিস ওয়াল্টার

70

অন্যরা যেমন উল্লেখ করেছে, Environment.NewLineএকটি নতুন লাইন শুরু করার জন্য একটি প্ল্যাটফর্ম-নির্দিষ্ট স্ট্রিং দেয়, যা হওয়া উচিত:

  • "\r\n" (\ u000D \ u000A) উইন্ডোজ এর জন্য
  • "\n" (\ u000A) ইউনিক্সের জন্য
  • "\r" (\ u000D) ম্যাকের জন্য (যদি এ জাতীয় বাস্তবায়ন বিদ্যমান থাকে)

নোট করুন কনসোলে লেখার সময়, এনভায়রনমেন্ট.নিউলাইন কঠোরভাবে প্রয়োজন হয় না। যদি প্রয়োজন হয় তবে কনসোল স্ট্রিমটি "\n"উপযুক্ত নতুন-লাইন ক্রমটিতে অনুবাদ করবে ।


ম্যাক বাস্তবায়ন বিদ্যমান। শুধু মনো। যে কোনও কিছুর উপরেই চলে।
ডাইকাম

24
কেবল একটি নোট, এটি পুরানো ম্যাকস হবে; নতুন (ওএসএক্স) \n
ম্যাক্স

2
@ ডাইকম, হ্যাঁ তবে এটি আমার এইচপি
48

1
অন্যরা যেমন উল্লেখ করেছে এবং যেমনটি এই প্রশ্নের সাথে জড়িত নেট উত্সে দৃশ্যমান রয়েছে, এই উত্তরটি সঠিক নয়।
ক্রিস ওয়াল্টার

2
@ ব্লাইক কেবল এটিই বলেছিল যে এটি 2009 সালে সত্য হতে পারে, এটি এমন নয়। আমি চেক করিনি।
কোডিসডটকম.কম

23

Environment.NewLine আপনার কোডটি চলছে এমন সম্পর্কিত প্ল্যাটফর্মের জন্য নিউলাইন চরিত্রটি ফিরিয়ে দেবে

আপনি মনো কাঠামোটিতে লিনাক্সে আপনার কোড স্থাপন করবেন তখন আপনি এটি খুব কার্যকর পাবেন


8

ডক্স থেকে ...

নন-ইউনিক্স প্ল্যাটফর্মগুলির জন্য "\ r \ n", অথবা ইউনিক্স প্ল্যাটফর্মগুলির জন্য "\ n" ধারণকারী একটি স্ট্রিং।


4

পরিবেশ.নিউজলাইন উইন্ডোজ চলাকালীন "\ r \ n" দেবে। আপনি যদি ইউনিক্স ভিত্তিক পরিবেশের জন্য স্ট্রিং তৈরি করে থাকেন তবে আপনি "\ r" চান না।


4

আপনি "\ r \ n" দিয়ে পৃথক বহু-লাইন বার্তা প্রদর্শন করার চেষ্টা করার সময় আপনি সমস্যার মধ্যে পড়তে পারেন।

স্ট্যান্ডার্ড উপায়ে জিনিসগুলি করা এবং পরিবেশ.নিউলাইন ব্যবহার করা সর্বদা একটি ভাল অনুশীলন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.