সি # তে কোন কনসোল অ্যাপ্লিকেশন থেকে বেরিয়ে আসার আদেশ কী?


256

কনসোল অ্যাপ্লিকেশন থেকে প্রস্থান করার জন্য সি # তে কমান্ডটি কী?

উত্তর:


333

আপনি ব্যবহার করতে পারেন Environment.Exit(0);এবংApplication.Exit

Environment.Exit(0) পরিষ্কার


8
শুধু কৌতূহলী, কী এটি পরিষ্কার করে তোলে?
গ্র্যান্ট এইচ।

এটি আমার জন্য নিখুঁতভাবে কাজ করেছিল যখন আমি স্ট্যাকওভারফ্লো . com/ a/ 7865126/1530166 এর মাধ্যমে কোনও কনসোল অ্যাপে টাইমার যুক্ত করি । অ্যাপ্লিকেশন.স্থানীয় স্ট্যাকওভারফ্লো . com/a/37029044/1530166 ব্যবহার করার পরেও তা ছাড়েনি
জেসন অ্যান্ডারসন

5
@GrantH। এটি ক্লিনার কারণ এটি অন্তর্নিহিত অপারেটিং সিস্টেমটিকে আরও কার্যকর ত্রুটি কোড দেয় কেন এটি বন্ধ হচ্ছে।
ফায়সাল এল মোফাথেচে

যাইহোক, Environment.Exitআপনার কাছে সুরক্ষাপিরমিশন ফ্ল্যাজ দরকার Uযুব ব্যবস্থাপনার কোড অনুমতি নেই - এটি কারও কারও জন্য ঝামেলা হতে পারে।
wp78de

93

বেশিরভাগ বিকল্প, সবচেয়ে উপযুক্ত উপায়ে অর্ডার দিয়ে:

  1. প্রোগ্রাম.মেন পদ্ধতি থেকে একটি int ফেরান
  2. একটি ব্যতিক্রম নিক্ষেপ করুন এবং এটি কোথাও হ্যান্ডেল করবেন না (অপ্রত্যাশিত ত্রুটি পরিস্থিতির জন্য ব্যবহার করুন)
  3. অন্যত্র সমাপ্তি জোর করতে, System.Environment.Exit( বহনযোগ্য নয়! নীচে দেখুন )

পাঠযোগ্যতা উন্নত করতে 9/2013 সম্পাদিত ited

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

ব্যবহারের বিরুদ্ধে আরেকটি বিষয় Evironment.Exit, এমনকি যখন বহু-থ্রেডেড অ্যাপ্লিকেশন লেখার - - হয় পুনর্ব্যাবহার্যোগ্যতা । আপনি যদি এমন কোনও পরিবেশে আপনার কোডটি পুনরায় ব্যবহার করতে চান যা Environment.Exitঅপ্রাসঙ্গিক করে তোলে (যেমন একটি লাইব্রেরি যা ওয়েব সার্ভারে ব্যবহৃত হতে পারে), কোডটি পোর্টেবল হবে না। আমার মতে এখনও সর্বশ্রেষ্ঠ সমাধান হ'ল সর্বদা ব্যতিক্রম এবং / বা প্রত্যাবর্তন মানগুলি ব্যবহার করে যা উপস্থাপন করে যে পদ্ধতিটি কোনও ত্রুটি / সমাপ্তির স্থানে পৌঁছেছে। এইভাবে, আপনি সর্বদা যে কোনও .NET পরিবেশে এবং যে কোনও অ্যাপ্লিকেশনটিতে একই কোডটি ব্যবহার করতে পারেন। আপনি যদি বিশেষত এমন একটি অ্যাপ লিখছেন যা প্রস্থান কোডটি ফেরত পাঠাতে হবে বা যা করার মতো একটি উপায়ে শেষ Environment.Exitকরতে হবে, তারপরে আপনি এগিয়ে গিয়ে থ্রেডটি সর্বোচ্চ স্তরে গুটিয়ে রাখতে পারেন এবং প্রয়োজনীয় ত্রুটিগুলি / ব্যতিক্রমগুলি পরিচালনা করতে পারেন।


10
এটি শেষ বিকল্পটি খারাপ স্বাদে। কোনও প্রোগ্রামার ব্যতিক্রম ছুঁড়ে ফেলে কোনও প্রোগ্রাম থেকে বেরিয়ে আসতে চায় না।
নিখিল অগ্রওয়াল

5
যেমনটি আমি "সবচেয়ে উপযুক্তভাবে অর্ডার দিয়ে" লিখেছি। তদুপরি, নির্দিষ্ট পরিস্থিতিতে ব্যতিক্রম ছুঁড়ে ফেলা হ'ল সঠিক উপায় (যেমন যখন একটি অপ্রত্যাশিত, মারাত্মক ত্রুটি ঘটে না যা ঘটতে পারে যা থেকে অ্যাপ্লিকেশনটি পুনরুদ্ধার হয় না)। আমি পরিষ্কার করার উত্তর আপডেট করেছি।
সিনায়লাও

আপনি যদি মেইন এ থাকেন তবে আপনি কেবল 0, 1 ইত্যাদি ফিরিয়ে দিতে পারেন এবং পদ্ধতিটির স্বাক্ষরটি কোনও ত্রুটি কোড ফেরত দেওয়ার জন্য কোনও INT ফেরত হিসাবে চিহ্নিত করতে পারেন, আপনাকে পরিবেশ ব্যবহার করার দরকার নেই an একটি ত্রুটি কোড নির্দিষ্ট করার জন্য প্রস্থান করুন।
পরিবেশন করুন

2
আপনি কল স্ট্যাকের গভীরতা এবং আপনি মূল থ্রেডে রয়েছেন কিনা তার উপর নির্ভর করে। কল করা সহজ নয় be ব্যতিক্রম বা এটিকে
ছাড়ে

আমি বিকল্পগুলির ক্রম পরিবর্তন করেছি। একটি ব্যতিক্রম নিক্ষেপ করার ফলে আপনার কোডটি বিভিন্ন কার্যকরযোগ্য পরিবেশে লাইব্রেরি হিসাবে পুনরায় ব্যবহার করা আরও সহজ করার সুবিধা রয়েছে।
সিনায়লা

26

মূল ফাংশনটি শেষ হয়ে গেলে কনসোল অ্যাপ্লিকেশনগুলি প্রস্থান করবে। একটি "রিটার্ন" এটি অর্জন করবে।

    static void Main(string[] args)
    {
        while (true)
        {
            Console.WriteLine("I'm running!");
            return; //This will exit the console application's running thread
        }
    }

আপনি যদি কোনও ত্রুটি কোডটি ফিরিয়ে দিচ্ছেন তবে আপনি এটি এইভাবে করতে পারেন যা প্রাথমিক থ্রেডের বাইরে ফাংশন থেকে অ্যাক্সেসযোগ্য:

    System.Environment.Exit(-1);

9

আপনি ব্যবহার করতে পারেন Environment.Exit(0)এবং Application.Exit

Environment.Exit(): এই প্রক্রিয়াটি শেষ করে এবং অন্তর্নিহিত অপারেটিং সিস্টেমটিকে নির্দিষ্ট প্রস্থান কোড দেয়।

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