c# - সি#6 এ দীর্ঘ স্ট্রিং অন্তরঙ্গকরণের লাইন




c#-6.0 (4)

আপনি লাইনটি একাধিক লাইনে বিভক্ত করতে পারেন , তবে আমি বলব না সিনট্যাক্সটি আরও সুন্দর দেখাচ্ছে।

একটি বিরক্তিকৃত ভার্ব্যাটিম স্ট্রিং ব্যবহার করার জন্য আপনাকে synt [email protected] সিনট্যাক্সটি ব্যবহার করতে হবে এবং আপনি {...} প্যারামিটারগুলির মধ্যে নতুন লাইনগুলি স্থাপন করতে পারেন:

string s = [email protected]"This is all {
    10
    } going to be one long {
    DateTime.Now
    } line.";

উপরের স্ট্রিংটিতে কোনও নতুন লাইন থাকবে না এবং এতে আসলে এর মতো সামগ্রী থাকবে:

এটি সমস্ত 10 এক দীর্ঘ 01.08.2015 23.49.47 লাইন হতে চলেছে।

(নোট, নরওয়েজিয়ান ফর্ম্যাট)

এখন, এই কথাটি বলে, আমি string.Format ব্যবহার বন্ধ করব না string.Format । আমার মতে এই স্ট্রিং ইন্টারপোলেশন এক্সপ্রেশনগুলির কিছু সত্যই ভাল লাগছে, তবে আরও জটিলগুলি পড়তে খুব কঠিন হতে শুরু করে। আপনি FormattableString ব্যবহার না করা পর্যন্ত String.Format কল করার জন্য সংকলিত হবে String.Format যাই হোক না কেন, আমি বলব String.Format সাথে যেতে থাকুন String.Format যেখানে এটি বোঝা যায়।

আমি খুঁজে পেয়েছি যে আমার বিদ্যমান কোড বেসের স্ট্রিং ফর্ম্যাট কলগুলিতে স্ট্রিং ইন্টারপোলেশন সত্যিই দুর্দান্ত যখন সাধারণত পছন্দসই কলামের সীমাটি দেওয়া হয়, স্ট্রিংটি একটি লাইনের জন্য খুব দীর্ঘ হয়ে যায়। বিশেষত যখন ইন্টারপোলেটেড হওয়া এক্সপ্রেশনগুলি জটিল হয়। ফর্ম্যাট স্ট্রিংয়ের সাথে আপনার কাছে ভেরিয়েবলের একটি তালিকা রয়েছে যা আপনি একাধিক লাইনে বিভক্ত করতে পারেন।

var str = string.Format("some text {0} more text {1}",
    obj1.property,
    obj2.property);

কারও কাছে এই লাইনগুলি ভাঙ্গার কোনও পছন্দসই উপায় আছে?

আমি মনে করি আপনি যেমন কিছু করতে পারেন:

var str = $"some text { obj1.property }" +
  " more text { obj2.property };

আমি উদাহরণ হিসাবে ওভাররাইড টুস্ট্রিং () এর মধ্যে স্ট্রিংবিল্ডার ব্যবহার করেছি।

    // return employee data
    public override string ToString()
    {
        StringBuilder buffer = new StringBuilder();
        buffer.AppendLine($"Number: {EmployeeNumber}");
        buffer.AppendLine($"Name: {EmployeeName}");
        buffer.AppendLine($"Address: {PostalAddress}");
        buffer.AppendLine($"Phone: {PhoneNumber}");
        buffer.AppendLine($"Age: {EmployeeAge}");
        buffer.AppendLine($"Gender: {EmployeeGender}");
        buffer.AppendLine($"Status: {EmployeeStatus}");
        buffer.AppendLine($"Manager: {EmployeeManager}");
        buffer.AppendLine($"Start: {EmployeeStartDate.ToShortDateString()}");
        return buffer.ToString();
    }

ওপি অন্য কিছুর জন্য জিজ্ঞাসা করার সময়, আমি প্রত্যাশা করি যে এই প্রশ্নটি পড়ছেন বহু লোক একটি মাল্টলাইন ইন্টারপোলটেড like @"" পছন্দ করবে যা @"" মতো কাজ করে। এটি করতে, [email protected]"" ব্যবহার করুন

[email protected]"Height: {height}
Width: {width}
Background: {background}"

স্ট্রিং ইন্টারপোলেশন এবং মাল্টি-লাইন স্ট্রিং আক্ষরিক পেতে আপনি $ এবং @ একত্রিত করতে পারেন:

var str = [email protected]"some text { obj1.property }
     more text { obj2.property }";

তবে এটি আপনাকে মাঝখানে একটি NewLine চরিত্র দেবে, তাই এটি আপনি যা চান তা নাও হতে পারে।





c#-6.0