আক্রমণকারী সংস্কৃতি কি?


173

আক্রমণকারী সংস্কৃতি ব্যবহারের জন্য কেউ কি উদাহরণ দিতে পারে ? ডকুমেন্টেশন কী বর্ণনা করে তা আমি বুঝতে পারি না।


14
এটি ইংরেজি, তবে কোনও অবস্থানের সাথে সম্পর্কিত নয়।

উত্তর:


132

আক্রমণকারী সংস্কৃতি একটি বিশেষ সংস্কৃতি যা এটি কার্যকর কারণ এটি পরিবর্তিত হবে না। বর্তমান সংস্কৃতি এক ব্যবহারকারীর থেকে অন্য ব্যবহারকারীতে পরিবর্তন হতে পারে, বা এমনকি এক রান থেকে অন্য রানাতেও পরিবর্তিত হতে পারে, সুতরাং আপনি একইরকম অবস্থায় থাকতে পারেন না।

প্রতিবার একই সংস্কৃতি ব্যবহার করতে সক্ষম হওয়া বেশ কয়েকটি প্রবাহে খুব গুরুত্বপূর্ণ, উদাহরণস্বরূপ, সিরিয়ালাইজেশন: আপনার এক সংস্কৃতিতে 1,1 এবং অন্যটিতে 1.1 মান থাকতে পারে। আপনি যদি দ্বিতীয় সংস্কৃতিতে "1,1" মানটি বিশ্লেষণ করার চেষ্টা করেন, তবে বিশ্লেষণ ব্যর্থ হবে। তবে আপনি কোনও সংখ্যাকে একটি স্ট্রিংয়ে রূপান্তর করতে এবং পরে যেকোন সংস্কৃতি সেট সহ যেকোন কম্পিউটার থেকে এটি পার্স করতে আক্রমণকারী সংস্কৃতি ব্যবহার করতে পারেন।

// Use some non-invariant culture.
CultureInfo nonInvariantCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = nonInvariantCulture;

decimal dec = 1.1m;
string convertedToString = dec.ToString();

// Simulate another culture being used,
// following code can run on another computer.
nonInvariantCulture.NumberFormat.NumberDecimalSeparator = ",";

decimal parsedDec;

try
{
    // This fails because value cannot be parsed.
    parsedDec = decimal.Parse(convertedToString);
}
catch (FormatException)
{
}

// However you always can use Invariant culture:
convertedToString = dec.ToString(CultureInfo.InvariantCulture);

// This will always work because you serialized with the same culture.
parsedDec = decimal.Parse(convertedToString, CultureInfo.InvariantCulture);

9
এটি মূল্যবান জন্য, এটি System.Globalizationনেমস্পেসে।
জিম এইচ।

1
এটি সর্বদা কাজ করবে কারণ আপনি একই সংস্কৃতির সাথে সিরিয়াল করেছেন << এটি আমার কাছে বোধগম্য হয়নি, আমি মনে করি আমি কিছু ভুল বুঝেছি। যদি CultureInfo.InvariantCultureআপনি একই সংস্কৃতির সাথে ক্রমিকায়িত হওয়ার কারণে যদি কাজগুলি ব্যবহার করে .... তবে এটি ব্যবহারের মতো নয় CultureInfo.CurrentCulture?
অ্যালিসন

3
@ অ্যালিসন যদি আপনি অ্যান্ড্রুয়ের শেষ দুটি কোডের বিবৃতিটিকে মূল প্রবাহে ফিরিয়ে দেন তবে আমি মনে করি এটি আরও অর্থবহ হবে। আপনি যদি সর্বদা ব্যবহার করে সিরিয়ালাইজ করেন CultureInfo.InvariantCultureতবে আপনি জানেন যে আপনি সর্বদা ব্যবহার করে একটি দশমিকের পিছনে পার্স করতে সক্ষম হবেন CultureInfo.InvariantCulture। আপনি যদি CultureInfo.CurrentCultureসিরিয়ালাইজ করতে ব্যবহার করেন তবে আপনার ব্যবহারকারীর তাদের বর্তমান সংস্কৃতি হিসাবে "এন-ইউএস" থাকতে পারে। পরবর্তী ব্যবহারকারী যেটিকে এটি দশমিক দশমিকায় বিশ্লেষণ করতে যায় তার একটি বর্তমান সংস্কৃতি থাকতে পারে যা বিভাজকের জন্য "," ব্যবহার করে।
ডেভিড স্পেকট

1
@ অ্যান্ড্রু সম্ভবত আমি ঘন, কিন্তু আপনি কী বলছিলেন তা আমি বুঝতে পারি না, ডেভিডের মন্তব্য ছাড়াই। আমি আপনার উত্তর সুস্পষ্ট হতে সম্পাদনা করেছি।
jpaugh

111

সংজ্ঞায়িত আচরণ সহ ইংরেজী ভিত্তিক একটি জাল সংস্কৃতি। লিখতে দুর্দান্ত, উদাহরণস্বরূপ, কনফিগার ফাইলগুলিতে স্টাফ করুন যাতে এটি ব্যবহারকারী যে সংস্কৃতিকে সংজ্ঞায়িত করেছেন তা নির্বিশেষে এটি পড়তে এবং লিখতে পারে।

মূলত এটি একটি নির্দিষ্ট সংস্কৃতি যা কৃত্রিম এবং পরিবর্তিত হবে না


4
বিশেষত, সংখ্যার স্ট্রিং ফর্মে কমা এবং পয়েন্টের বিভিন্ন ব্যবহার দ্বারা বা বিজোড় কেস রূপান্তরগুলির দ্বারা আপনি ধরা পড়বেন না।
স্টিভ গিলহাম

8
হ্যাঁ ... এর জন্য সাধারণ সমস্যা: * আমেরিকান প্রোগ্রামাররা যা শব্দটি ইংরেজী বলে মনে করেন;) এবং তারপরে জার্মান গ্রাহকরা 1000 এর জন্য 1.000,00 লিখেন;) আউট। * এমনকি একই ভাষায়, সুইজারল্যান্ড এবং জার্মানি উদাহরণস্বরূপ ব্যবহার করুন "" এবং "," বিভিন্ন উপায়ে সংখ্যায়। ফলাফল -> কনফিগারেশন ফাইলগুলি আবর্জনা। সেখানে আক্রমণাত্মক ভাষা ব্যবহার করুন;)
টমটম

23
স্টিভের মন্তব্যে যোগ করার জন্য: জিনিসগুলি কীভাবে দেখতে পারা যায় না তা ব্যবহার করার সংস্কৃতি হ'ল (এটি কমা বা পয়েন্টগুলি ব্যবহার করে কিনা তা বিবেচ্য নয় কারণ ব্যবহারকারী কখনই এটি দেখতে পাবে না) তবে আপনার সর্বদা এটির প্রয়োজন হবে একই হতে (যেমন আপনার যা লিখেছেন তা পড়তে পারা দরকার)।
itowlson

7

এটি সংস্কৃতি নির্বিশেষে একই জিনিসগুলির জন্য ব্যবহৃত হয় (এটি উপযুক্ত হওয়ার জন্য কোনও সংস্কৃতি এক্স-এ অনুবাদ করার দরকার নেই)

যেমন উদাহরণ হিসাবে - https://msdn.microsoft.com/en-us/library/4c5zdc6a(vvvv.1.100).aspx । আপনি যখন কোনও অ্যাপ্লিকেশন-নির্দিষ্ট ফাইলটি লিখেন যা ব্যবহারকারীর সাথে অশান্তি করা উচিত নয়, আপনার সংস্কৃতি প্যারামিটারে নেওয়া সমস্ত পদ্ধতির জন্য ইনভেয়ারেন্টকালচার ব্যবহার করা উচিত।

নোট করুন যে উপরে লিঙ্কিত দস্তাবেজগুলি:

যাইহোক, কোনও অ্যাপ্লিকেশনটিতে কেবল সংস্কৃতি-স্বতন্ত্র ফলাফলের প্রয়োজন হয় এমন প্রসেসের জন্য আক্রমণকারী সংস্কৃতি ব্যবহার করা উচিত, যেমন ফাইলেটিং এবং কোনও ফাইলের মধ্যে থাকা ডেটা পার্সিংয়ের মতো।


3
এটি এই ছদ্মবেশে কথা বলে যে ইনভেআরেন্ট সংস্কৃতিটি কেবলমাত্র একটি মধ্যবর্তী ফর্ম্যাট হিসাবে চিহ্নিত করা হয়েছে, অর্থাত্ যদি আপনি ব্যবহারকারীর কাছে এমন জিনিস প্রদর্শন করছেন যা হানাদার সংস্কৃতির আউটপুট (যা 'আক্রমণকারী সংস্কৃতিতে'), আপনি করছেন কিছু ভুল এবং আক্রমণকারী সংস্কৃতি বুঝতে পারি না।
mlhDev

3

আক্রমণকারী সংস্কৃতি সংস্কৃতি-সংবেদনশীল; এটি ইংরেজি ভাষার সাথে সম্পর্কিত তবে কোনও দেশ / অঞ্চলের সাথে নয়।

সংস্কৃতিআইএনফো.আইভারিয়ান্টকালচার অদম্য সংস্কৃতির একটি উদাহরণ পুনরুদ্ধার করে। এটি সিস্টেমের প্রায় যে কোনও পদ্ধতিতে ব্যবহার করা যেতে পারে lo গ্লোবালাইজেশন নেমস্পেস যাতে সংস্কৃতি প্রয়োজন।

CompareInfo, তারিখটাইমফর্ম্যাট এবং সংখ্যাফর্ম্যাট হিসাবে বৈশিষ্ট্য দ্বারা প্রত্যাবর্তিত বস্তুগুলিও আক্রমণকারী সংস্কৃতির স্ট্রিং তুলনা এবং ফর্ম্যাট কনভেনশনগুলি প্রতিফলিত করে। InvariantCulture সম্পত্তি কুশলী যখন আপনি প্রদর্শন করাতে চান আসে ডেটা জিদ একটি সংস্কৃতি স্বাধীন বিন্যাস।

উদাহরণস্বরূপ, যদি আপনি আবেদন বর্তমান সংস্কৃতির একটি নির্দিষ্ট বিন্যাসে স্বাধীন একটি সংখ্যা বা DATETIME প্রদর্শন করাতে চান আপনি ব্যবহার করতে পারেন CultureInfo.InvariantCulture


0

এটি সর্বজনীন সরল অ আঞ্চলিক-নির্দিষ্ট ইংরেজি ভাষা এবং অন্যান্য সম্পর্কিত তথ্য। এটি নিজেই প্রোগ্রামিং ভাষার ভাষার মতো। আপনি সর্বজনীন ক্যালেন্ডার স্থাপনে এটির উপর নির্ভর করতে পারেন; এমন পরিস্থিতিতে যেখানে আপনার নিয়ন্ত্রণকারী নাম, ইউআরএল, প্রতিনিধিদের নাম ইত্যাদি তৈরি করতে হবে। এবং সমস্ত ব্যবহারকারীর মধ্যে প্রাকৃতিক এবং সর্বজনীনভাবে কাজ করার জন্য জিনিসগুলির প্রয়োজন।

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