কীভাবে বন্ধনী ব্যবহার করে পালানো যায় string.Format
।
উদাহরণ স্বরূপ:
String val = "1,2,3"
String.Format(" foo {{0}}", val);
এই উদাহরণটি একটি ব্যতিক্রম ছুঁড়ে না, তবে স্ট্রিংকে আউটপুট দেয় foo {0}
।
বন্ধনীগুলি থেকে বাঁচার কোনও উপায় আছে?
কীভাবে বন্ধনী ব্যবহার করে পালানো যায় string.Format
।
উদাহরণ স্বরূপ:
String val = "1,2,3"
String.Format(" foo {{0}}", val);
এই উদাহরণটি একটি ব্যতিক্রম ছুঁড়ে না, তবে স্ট্রিংকে আউটপুট দেয় foo {0}
।
বন্ধনীগুলি থেকে বাঁচার কোনও উপায় আছে?
উত্তর:
আউটপুট দেওয়ার জন্য আপনাকে foo {1, 2, 3}
এমন কিছু করতে হবে:
string t = "1, 2, 3";
string v = String.Format(" foo {{{0}}}", t);
একটি আউটপুট {
আপনি ব্যবহার {{
এবং আউটপুট করার জন্য একটি }
আপনি ব্যবহার }}
।
বা এখন, আপনি সি # স্ট্রিং অন্তঃসারণটিও এর মতো ব্যবহার করতে পারেন (সি # 6.0 এ উপলব্ধ বৈশিষ্ট্য)
এসকেপিং বন্ধনী: স্ট্রিং ইন্টারপোলেশন "(" ") । এটি সি # 6.0 এ নতুন বৈশিষ্ট্য
var inVal = "1, 2, 3";
var outVal = $" foo {{{inVal}}}";
//Output will be: foo {1, 2, 3}
$"a = {{ {a} }}"
)
string v = $" foo {{{t}}}";
। আপনার যদি অন্য চরিত্রগুলি থেকে বাঁচতে থাকে তবে এটি কোনও কোঁকড়ানো নয় আপনি $ @ কম্বোstring v2 = $@"\foo {{{t}}}\";
হ্যাঁ আউটপুট {
মধ্যে string.Format
আপনি ভালো এটা অব্যাহতি আছে{{
আমার স্নাতকের
String val = "1,2,3";
String.Format(" foo {{{0}}}", val);
আউটপুট হবে "foo {1,2,3}"
।
তবে আপনাকে সি # তে একটি ডিজাইন বাগ সম্পর্কে জানতে হবে যা উপরের যুক্তি দিয়ে আপনি ধরে নিবেন যে নীচের কোডটি প্রিন্ট করবে {24.00 will
int i = 24;
string str = String.Format("{{{0:N}}}", i); //gives '{N}' instead of {24.00}
তবে এটি প্রিন্ট করে {N} এটি কারণ সি # যেভাবে পালানোর সিকোয়েন্সগুলি এবং বিন্যাসের অক্ষরকে বিশদ করে। উপরের ক্ষেত্রে কাঙ্ক্ষিত মান পেতে আপনার পরিবর্তে এটি ব্যবহার করতে হবে।
String.Format("{0}{1:N}{2}", "{", i, "}") //evaluates to {24.00}
রেফারেন্স নিবন্ধ স্ট্রিং। ফরম্যাট গেটটাচ এবং স্ট্রিং ফর্ম্যাটিং এফএকিউ
string.Format( "{{{0}}}", i.ToString("N") );
যা কারওর কাছে বেশি পঠনযোগ্য।
পলায়নপরকিন্তু কোঁকড়া বন্ধনী এবং ব্যবহার স্ট্রিং ক্ষেপক একটি আকর্ষণীয় চ্যালেঞ্জ করে তোলে। স্ট্রিং ইন্টারপোলেশন পার্সিং এবং পার্সিং এড়াতে আপনাকে চতুর্ভুজ বন্ধনী ব্যবহার করতে হবে ।string.format
string localVar = "dynamic";
string templateString = $@"<h2>{0}</h2><div>this is my {localVar} template using a {{{{custom tag}}}}</div>";
string result = string.Format(templateString, "String Interpolation");
// OUTPUT: <h2>String Interpolation</h2><div>this is my dynamic template using a {custom tag}</div>
সি # তে কীভাবে জসন স্ট্রিংগুলি অ্যাড-হক (কোনও শ্রেণি / অবজেক্টকে সিরিয়ালাইজ না করে) তৈরি করতে হয় তার সন্ধানে এখানে এসেছিলেন। অন্য কথায়, সি # এবং " ভার্ব্যাটিম স্ট্রিং লিটারালস " ('@' উপসর্গ সহ ডাবল উদ্ধৃত স্ট্রিং) ব্যবহার করার সময় কীভাবে ব্রেস এবং কোটগুলি থেকে রক্ষা পাওয়া যায় ...
var json = $@"{{""name"":""{name}""}}";
[TestMethod]
public void BraceEscapingTest()
{
var result = String.Format("Foo {{0}}", "1,2,3"); //"1,2,3" is not parsed
Assert.AreEqual("Foo {0}", result);
result = String.Format("Foo {{{0}}}", "1,2,3");
Assert.AreEqual("Foo {1,2,3}", result);
result = String.Format("Foo {0} {{bar}}", "1,2,3");
Assert.AreEqual("Foo 1,2,3 {bar}", result);
result = String.Format("{{{0:N}}}", 24); //24 is not parsed, see @Guru Kara answer
Assert.AreEqual("{N}", result);
result = String.Format("{0}{1:N}{2}", "{", 24, "}");
Assert.AreEqual("{24.00}", result);
result = String.Format("{{{0}}}", 24.ToString("N"));
Assert.AreEqual("{24.00}", result);
}
এসকেপিং বন্ধনী: স্ট্রিং ইন্টারপোলেশন "(" "):
এখন, আপনি এই জাতীয় সি # স্ট্রিং ইন্টারপোলেশনও ব্যবহার করতে পারেন (সি # 6.0 এ উপলব্ধ বৈশিষ্ট্য)
var inVal= "1, 2, 3";
var outVal= $" foo {{{inVal}}}";
//Output will be: foo {1, 2, 3}
আমার উদ্দেশ্য:
আমার "{CR}{LF}"
একটি string
ভেরিয়েবলের মান নির্ধারণ করা দরকার delimiter
।
কোড সি #:
string delimiter= "{{CR}}{{LF}}";
দ্রষ্টব্য: সাধারণত বিশেষ অক্ষরগুলি এড়াতে আপনাকে ব্যবহার করতে হবে। কোঁকড়ানো বন্ধনী opening খোলার জন্য, extra like এর মতো একটি অতিরিক্ত ব্যবহার করুন { কোঁকড়ানো বন্ধনী closing বন্ধ করার জন্য, একটি অতিরিক্ত}} ব্যবহার করুন}