.NET এ আমার কাছে একটি তুচ্ছ কনসোল অ্যাপ্লিকেশন রয়েছে। এটি বৃহত্তর প্রয়োগের কেবল একটি পরীক্ষার অংশ। আমি আমার কনসোল অ্যাপ্লিকেশনটির "প্রস্থান কোড" নির্দিষ্ট করতে চাই। আমি এটা কিভাবে করবো?
.NET এ আমার কাছে একটি তুচ্ছ কনসোল অ্যাপ্লিকেশন রয়েছে। এটি বৃহত্তর প্রয়োগের কেবল একটি পরীক্ষার অংশ। আমি আমার কনসোল অ্যাপ্লিকেশনটির "প্রস্থান কোড" নির্দিষ্ট করতে চাই। আমি এটা কিভাবে করবো?
উত্তর:
3 টি বিকল্প:
Main
যদি আপনার Main
পদ্ধতিটি ফিরে আসার ঘোষণা দেন তবে আপনি এটি থেকে ফিরে আসতে পারেন int
।Environment.Exit(code)
।Environment.ExitCode = -1;
। আর কিছুই যদি রিটার্ন কোড সেট না করে বা উপরের অন্যান্য বিকল্পগুলির মধ্যে একটি ব্যবহার না করে তবে এটি ব্যবহার করা হবে)।আপনার অ্যাপ্লিকেশন (কনসোল, পরিষেবা, ওয়েব অ্যাপ্লিকেশন, ইত্যাদি) এর উপর নির্ভর করে বিভিন্ন পদ্ধতি ব্যবহার করা যেতে পারে।
0
মানে সাফল্য এবং অ-শূন্যের অর্থ ব্যর্থতা। return;
প্রস্থান কোডের মাধ্যমে সাফল্য নির্দেশ করে 0
এবং return -1;
ব্যর্থতা নির্দেশ করে।
রিটার্ন ইন এর উত্তরগুলি কভার করার সাথে সাথে ... সন্তুষ্টির জন্য একটি আবেদন। দয়া করে দয়া করে একটি এনামে আপনার প্রস্থান কোডগুলি সংজ্ঞায়িত করুন, উপযুক্ত হলে পতাকা সহ। এটি ডিবাগিং এবং রক্ষণাবেক্ষণকে এত সহজ করে তোলে (এবং, একটি বোনাস হিসাবে আপনি সহজেই আপনার সহায়তা পর্দায় প্রস্থান কোডগুলি মুদ্রণ করতে পারেন - আপনারগুলির মধ্যে একটি আছে, তাই না?)।
enum ExitCode : int {
Success = 0,
InvalidLogin = 1,
InvalidFilename = 2,
UnknownError = 10
}
int Main(string[] args) {
return (int)ExitCode.Success;
}
0 = Success
যে কেবলমাত্র একটি সাফল্য কোড প্রয়োজন, তবে অনেকগুলি ত্রুটি কোড, যেমন 0, কম্পিউটারের পূর্ণসংখ্যায় + বা - না থাকায়, সাফল্যের অনন্য পরিচয় সনাক্ত করতে ব্যবহার করা যেতে পারে
তিনটি পদ্ধতি রয়েছে যা আপনি কনসোল অ্যাপ্লিকেশন থেকে প্রস্থান কোডটি ফেরত দিতে ব্যবহার করতে পারেন।
Main
আপনার অ্যাপ্লিকেশনটিতে পদ্ধতিটি সংশোধন করুন যাতে এটি int
পরিবর্তে void
( ভিবি.নেটের Integer
পরিবর্তে একটি ফাংশন দেয় এমন ফাংশন Sub
) দেয় এবং তারপরে সেই পদ্ধতি থেকে প্রস্থান কোডটি ফিরে আসে।Main
পদ্ধতিটি যদি void
( Sub
VB.Net এ একটি ) ব্যতীত অন্য কোনও কিছু প্রদান করে তবে এই সম্পত্তির মান উপেক্ষা করা হবে।একটি গুরুত্বপূর্ণ মান যা পালন করা উচিত তা হ'ল 0
'সাফল্য' উপস্থাপন করে।
সম্পর্কিত বিষয়ে, আপনার অ্যাপ্লিকেশনটি যে ফিরিয়ে দিতে চলেছে সেই প্রস্থান কোডগুলি সংজ্ঞায়িত করতে একটি গণনা ব্যবহার করে বিবেচনা করুন। FlagsAttribute কোডগুলি সংমিশ্রণ ফিরে যাওয়ার অনুমতি দেবে।
এছাড়াও, আপনার আবেদনটি একটি 'কনসোল অ্যাপ্লিকেশন' হিসাবে সংকলিত হয়েছে তা নিশ্চিত করুন।
Environment.ExitCode
বন্ধ না প্রোগ্রাম অবিলম্বে করে কিন্তু Environment.Exit
পদ্ধতি অবিলম্বে প্রোগ্রাম বন্ধ
Process
থাকে, আপনি বস্তুকে জিজ্ঞাসা করতে পারেন WaitForExit()
এবং তারপরে এটি থেকে প্রস্থান কোডের জন্য অনুরোধ করতে পারেন।
আপনি যদি ডেভিড দ্বারা প্রস্তাবিত পদ্ধতিটি ব্যবহার করতে চলেছেন তবে আপনার [পতাকা] বৈশিষ্ট্যটিও একবার দেখে নেওয়া উচিত।
এটি আপনাকে এনামগুলিতে বিট বুদ্ধিমান অপারেশন করতে দেয়।
[Flags]
enum ExitCodes : int
{
Success = 0,
SignToolNotInPath = 1,
AssemblyDirectoryBad = 2,
PFXFilePathBad = 4,
PasswordMissing = 8,
SignFailed = 16,
UnknownError = 32
}
তারপর
(ExitCodes.SignFailed | ExitCodes.UnknownError)
16 + 32. :) হবে
int code = 2;
Environment.Exit( code );
System.Environment.ExitCode
http://msdn.microsoft.com/en-us/library/system.environment.exitcode.aspx
মূল থেকে অ্যাপ্রোপিয়েট কোডটি ফিরিয়ে দিন।
int main(string[] args)
{
return 0; //or exit code of your choice
}
static void Main(string[] args);
যদি আপনার প্রধানটির শূন্য রিটার্ন স্বাক্ষর থাকে তবে এক্সিটকোড ব্যবহার করুন, অন্যথায় আপনি যে মানটি ফিরিয়েছেন তার দ্বারা আপনাকে এটি "সেট" করতে হবে।
যদি প্রধান পদ্ধতিটি বাতিল হয়ে যায়, আপনি এই সম্পত্তিটি প্রস্থান কোড সেট করতে ব্যবহার করতে পারবেন যা কলিং পরিবেশে ফিরে আসবে। যদি মেইন অকার্যকর না ফিরে আসে তবে এই সম্পত্তিটিকে অগ্রাহ্য করা হবে। এই সম্পত্তিটির প্রাথমিক মান শূন্য।
স্কট মুনরোর উত্তরটির আপডেট হিসাবে :
Main
কোনও প্রভাব নেই।main
প্রবেশের পয়েন্টের রিটার্ন মান সম্মান করা হয়।Main()
সেট না Process.ExitCode
যেমন কলিং অ্যাপ্লিকেশন দ্বারা দেখা যায়।
int Main
এখনও পরিবেশ.এক্সিট কোডের বিকল্প হিসাবে ব্যবহার করা যেতে পারে। লিংক
গণনা বিকল্পটি দুর্দান্ত তবে সংখ্যার গুণকে আরও উন্নত করা যেতে পারে:
enum ExitCodes : int
{
Success = 0,
SignToolNotInPath = 1,
AssemblyDirectoryBad = 2,
PFXFilePathBad = 4,
PasswordMissing = 8,
SignFailed = 16,
UnknownError = 32
}
একাধিক ত্রুটির ক্ষেত্রে, নির্দিষ্ট ত্রুটি সংখ্যা একসাথে যুক্ত করা আপনাকে একটি অনন্য নম্বর দেয় যা সনাক্ত করা ত্রুটির সংমিশ্রণের প্রতিনিধিত্ব করবে।
উদাহরণস্বরূপ, 6 এর একটি ত্রুটিযুক্ত মাত্রায় কেবল 4 এবং 2 ত্রুটি থাকতে পারে, 12 কেবলমাত্র 4 এবং 8 ত্রুটিগুলি নিয়ে গঠিত হতে পারে, 14 কেবল 2, 4 এবং 8 ইত্যাদির সমন্বয়ে থাকতে পারে etc.
আমার 2 সেন্ট:
আপনি এখানে সিস্টেম ত্রুটি কোডগুলি খুঁজে পেতে পারেন: https://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx
আপনি "ফাইল পাওয়া যায়নি" এর জন্য 2 বা "অ্যাক্সেস প্রত্যাখ্যান" এর জন্য 5 এর মতো সাধারণ কোডগুলি দেখতে পাবেন।
এবং আপনি যখন অজানা কোডটিতে হোঁচট খাচ্ছেন, আপনি এর অর্থ কী তা জানার জন্য এই আদেশটি ব্যবহার করতে পারেন:
net helpmsg decimal_code
যেমন
নেট হেল্পসএমজি 1
আয়
ভুল ফাংশন
এই কোড ব্যবহার করুন
Environment.Exit(0);
আপনি যদি কিছু ফিরিয়ে দিতে না চান তবে 0 ব্যবহার করুন int