2009-04-08 23 views
96

क्या सी # विधियों को स्थिर होना चाहिए स्थिर?क्या सी # विधियां जो * स्थिर हो सकती हैं स्थिर हो सकती हैं?

हम आज इस पर चर्चा कर रहे थे और मैं बाड़ पर हूं। कल्पना कीजिए कि आपके पास एक लंबी विधि है कि आप कुछ लाइनों को दोबारा प्रतिक्रिया देते हैं। नई विधि शायद मूल विधि से कुछ स्थानीय चर लेती है और एक मान देता है। इसका मतलब है कि यह स्थिर हो सकता है।

सवाल यह है: यह स्थिर होना चाहिए? यह डिज़ाइन या पसंद द्वारा स्थिर नहीं है, बस इसकी प्रकृति से यह किसी भी आवृत्ति मानों का संदर्भ नहीं देता है।

+1

http://stackoverflow.com/questions/169378/c-method-can-be-made-static-but-should-it/169423#169423 – JasonTrue

+39

"काफी सटीक" ऑक्सीमोरॉन –

+1

["सटीक सटीक" का सटीक सटीक डुप्लिकेट [ Resharper] (http://www.jetbrains.com/resharper/), उपकरण के विजुअल स्टूडियो टूल, हाँ कहते हैं! :-) – Junto

उत्तर

57

यह निर्भर करता है। वास्तव में कर रहे हैं स्थिर तरीकों के 2 प्रकार:

  1. तरीके है कि स्थिर है क्योंकि वे हो सकता है
  2. तरीके है कि स्थिर है क्योंकि वे मध्यम आकार कोड आधार के लिए

एक छोटी सी में है आप वास्तव में दो तरीकों का एक दूसरे से व्यवहार कर सकते हैं।

यदि आपके पास पहली श्रेणी (कैन-स्टेट-स्टैटिक) में कोई विधि है, और आपको कक्षा राज्य तक पहुंचने के लिए इसे बदलने की आवश्यकता है, तो यह अपेक्षाकृत सीधे आगे है कि स्थिर विधि को चालू करना संभव है या नहीं एक उदाहरण विधि।

एक बड़े कोड बेस में, हालांकि, कॉल साइट की बड़ी संख्या यह देखने के लिए खोज कर सकती है कि एक स्थैतिक विधि को एक स्थिर स्थिति में परिवर्तित करना संभव है या नहीं। कई बार लोग कॉल की संख्या देखेंगे और कहेंगे "ठीक है ... मैं इस विधि को बेहतर नहीं बदलता, बल्कि इसके बजाय एक नया बना देता हूं जो मुझे चाहिए"।

कि में परिणाम कर सकते या तो:

  1. कोड दोहराव
  2. विधि तर्क
उन चीजों की

दोनों की संख्या में एक धमाका बुरा कर रहे हैं का एक बहुत।

तो, मेरी सलाह यह होगी कि यदि आपके पास 200 के एलओसी से अधिक कोड आधार है, तो मैं केवल स्थाई विधियों के जरिए विधियों को स्थिर कर दूंगा।

गैर स्थैतिक से स्थैतिक से रिफैक्टरिंग अपेक्षाकृत आसान है (केवल एक कीवर्ड जोड़ें), इसलिए यदि आप बाद में एक वास्तविक स्थिर में एक स्थिर-स्थैतिक बनाना चाहते हैं (जब आपको किसी उदाहरण के बाहर इसकी कार्यक्षमता की आवश्यकता होती है) तब आप कर सकते हो। हालांकि, उलटा रिफैक्टरिंग, एक आवृत्ति विधि में एक कैन-स्टैटिक मोड़ना बहुत महंगा है।

बड़े कोड बेस के साथ आदर्श आदर्श शुद्धता के पक्ष में विस्तार की आसानी के पक्ष में त्रुटि करना बेहतर होता है।

इसलिए, बड़ी परियोजनाओं के लिए चीजें स्थिर नहीं होती हैं जब तक कि आपको उनकी आवश्यकता न हो। छोटी परियोजनाओं के लिए, बस वही करें जो आपको सबसे अच्छा लगता है।

6

स्टेटिक विधियां गैर स्थैतिक लोगों की तुलना में तेज़ी से हैं, इसलिए यदि वे कर सकते हैं तो उन्हें स्थैतिक होना चाहिए और उन्हें nonstatic छोड़ने का कोई विशेष कारण नहीं है।

+3

यह तकनीकी रूप से सच है, लेकिन वास्तविक सामग्री अर्थ में नहीं। स्थैतिक/गैर के बीच का अंतर बहुत ही कम प्रदर्शन में एक कारक होगा। – Foredecker

+0

किसी के पास इसके लिए कोई संदर्भ है? – Ray

+22

-1: पाठ्यपुस्तक समयपूर्व अनुकूलन। सामान्य मामले के लिए स्थैतिक बनाम गैर स्थैतिक निर्णय लेने पर गति निश्चित रूप से पहला मानदंड नहीं होना चाहिए। –

8

मुझे लगता है कि यह इसे थोड़ा और अधिक पठनीय बना देगा यदि आपने इसे स्थिर के रूप में चिह्नित किया है ... तो जो कोई साथ आता है उसे पता चलेगा कि यह पूरे फ़ंक्शन को पढ़ने के बिना किसी भी इंस्टेंस चर का संदर्भ नहीं देता है ...

1

यह निर्भर करता है लेकिन आम तौर पर मैं उन विधियों को स्थिर नहीं करता हूं। कोड हमेशा बदल रहा है और शायद किसी दिन मैं उस कार्य को आभासी बनाना चाहता हूं और इसे सबक्लास में ओवरराइड करना चाहता हूं। या शायद कुछ दिन इसे आवृत्ति चर का संदर्भ देने की आवश्यकता होगी। यदि प्रत्येक कॉल साइट को बदला जाना है तो उन परिवर्तनों को करना मुश्किल होगा।

+0

हाँ, लेकिन अगर किसी दिन आपको ऐसा करने की ज़रूरत है, तो आप इसे हमेशा स्थिर नहीं बना सकते हैं। या क्या मैं कुछ न कुछ भूल रहा हूं? – Ray

+1

@ रे - मैं इसे अपने उत्तर में कवर करता हूं। गैर स्थैतिक के लिए स्थैतिक एक तोड़ने वाला परिवर्तन है, इसलिए सभी उपभोक्ताओं को संशोधित करने की आवश्यकता है।एक छोटे से कार्यक्रम के लिए एक बड़ा सौदा नहीं है, लेकिन अगर यह दूसरों द्वारा खपत के लिए एक पुस्तकालय है, तो इसे ध्यान में रखना होगा। – Michael

+0

सभी कॉल साइटों को एक स्थिर विधि कॉल से सदस्य फ़ंक्शन कॉल में बदला जाना है। –

20

आवश्यक नहीं है।

स्थैतिक से गैर स्थैतिक से सार्वजनिक विधियों को स्थानांतरित करना एक तोड़ने वाला परिवर्तन है, और आपके सभी कॉलर्स या उपभोक्ताओं में परिवर्तन की आवश्यकता होगी। यदि कोई विधि किसी उदाहरण विधि की तरह प्रतीत होती है, लेकिन किसी भी इंस्टेंस सदस्यों का उपयोग नहीं करती है, तो मैं भविष्य में प्रूफिंग के उपाय के रूप में इसे एक उदाहरण विधि बनाने का सुझाव दूंगा।

+0

निजी तरीकों के बारे में क्या? – Ray

+0

मुझे लगता है कि वह ज्यादातर निजी तरीकों का जिक्र कर रहा है –

+0

@ रे - दाएं, यह केवल गैर-निजी सदस्यों पर लागू होता है। मैंने इसे प्रतिबिंबित करने के लिए अपना उत्तर अपडेट किया। – Michael

-1

उन मामलों में, मैं एक स्थिर या utils पुस्तकालय के लिए विधि को स्थानांतरित करने के लिए करते हैं, तो मैं "वर्ग"

42

मैं करूंगा नहीं की अवधारणा के साथ "वस्तु" की अवधारणा मिश्रण नहीं है इसे सार्वजनिकके स्थिर सदस्य वर्ग बनाते हैं। इसका कारण यह है कि इसे सार्वजनिक स्थैतिक बनाना कक्षा के प्रकार के बारे में कुछ कह रहा है: न केवल यह कि "इस प्रकार को यह व्यवहार कैसे करना है", बल्कि यह भी "इस व्यवहार को करने के लिए इस प्रकार की ज़िम्मेदारी है।" और बाधाएं हैं कि अब व्यवहार के बड़े प्रकार के साथ कोई वास्तविक संबंध नहीं है।

इसका मतलब यह नहीं है कि मैं इसे बिल्कुल स्थिर नहीं बनाऊंगा। अपने आप से यह पूछें: क्या नई विधि तार्किक रूप से कहीं और हो सकती है? यदि आप उस पर "हां" का उत्तर दे सकते हैं, तो आप शायद इसे स्थैतिक बनाना चाहते हैं (और इसे भी स्थानांतरित करें)। भले ही यह सच नहीं है, फिर भी आप इसे स्थिर बना सकते हैं। बस इसे public चिह्नित न करें।

सुविधा के मामले में, आप इसे कम से कम internal चिह्नित कर सकते हैं। यह आम तौर पर विधि को स्थानांतरित करने की आवश्यकता से बचाता है यदि आपके पास अधिक उपयुक्त प्रकार तक आसान पहुंच नहीं है, लेकिन फिर भी इसे सुलभ छोड़ दिया जाता है जहां इस तरह की आवश्यकता होती है कि यह आपकी कक्षा के उपयोगकर्ताओं को सार्वजनिक इंटरफ़ेस के हिस्से के रूप में दिखाई नहीं देगी ।

+6

सहमत हुए। मैं आमतौर पर इस तरह के मामले में विधि "निजी स्थैतिक" बना देता हूं। – harpo

+6

मैं निजी स्थिर, या तो नहीं मानूंगा। मुख्य बात यह है कि आप खुद से पूछें: क्या यह विधि तार्किक रूप से इस प्रकार के हिस्से के रूप में फिट है, या यह सुविधा के मामले के रूप में यहां है? यदि उत्तरार्द्ध, यह कहीं और बेहतर फिट हो सकता है? –

+1

पसंद है: "क्या नई विधि तार्किक रूप से कहीं और संबंधित हो सकती है" - सुराग यह स्थानीय राज्य पर भरोसा नहीं करता है, शायद वापसी का प्रकार कहां से संबंधित है? – AndyM

1

मेरा सुझाव है कि इसके बारे में सोचने का सबसे अच्छा तरीका यह है: यदि आपको क्लास विधि की आवश्यकता होती है जिसे कक्षा के किसी भी उदाहरण को तत्काल नहीं किया जाता है, या किसी प्रकार का वैश्विक राज्य बनाए रखा जाता है, तो स्थिर एक अच्छा है विचार। लेकिन आम तौर पर, मेरा सुझाव है कि आपको सदस्यों को गैर-स्थिर बनाना चाहिए।

4

कुछ स्थिर बनाना क्योंकि आप एक अच्छा विचार नहीं कर सकते हैं। स्टेटिक विधियों को उनके डिजाइन के कारण स्थैतिक होना चाहिए, न कि घटना के कारण।

माइकल की तरह, यह बाद में बदलकर कोड का उपयोग कर रहा है जो इसका उपयोग कर रहा है।

इसके साथ, ऐसा लगता है कि आप कक्षा के लिए एक निजी उपयोगिता समारोह बना रहे हैं, वास्तव में, डिजाइन द्वारा स्थिर है।

13

हां। कारण "यह स्थैतिक हो सकता है" यह है कि यह उस वस्तु की स्थिति पर काम नहीं करता है जिस पर इसे कहा जाता है। इसलिए यह एक उदाहरण विधि नहीं है, बल्कि एक वर्ग विधि है। यदि यह उदाहरण के लिए डेटा तक पहुंचने के बिना क्या करना है, तो यह स्थिर होना चाहिए।

11

हां, यह चाहिए। विभिन्न metrics of coupling हैं जो मापते हैं कि आपकी कक्षा अन्य चीजों, विधियों आदि जैसे अन्य चीजों पर निर्भर करती है। विधियों को स्थिर करना एक युग्मन की डिग्री रखने का एक तरीका है, क्योंकि आप सुनिश्चित कर सकते हैं एक स्थैतिक विधि किसी का संदर्भ नहीं देती है सदस्य हैं।

+7

जरूरी नहीं है। एक स्थैतिक विधि उदाहरण की जानकारी तक नहीं पहुंच पाएगी, कोई सदस्य नहीं, जैसा आपने कहा था, लेकिन यह अन्य वर्गों के साथ-साथ एक और आम विधि के साथ बातचीत करने में सक्षम है। स्थैतिक होने का मतलब यह नहीं है कि युग्मन कम हो जाता है। हालांकि, मैं आपकी बात समझ गया। –

+0

इसके बजाय स्थैतिक वास्तविक * बढ़ता * युग्मन, क्योंकि आप बिल्कुल उस स्थिर विधि तक सीमित हैं, उदाहरण के लिए इसे iverride करने का कोई तरीका नहीं है और इस प्रकार व्यवहार को बदलने का कोई तरीका नहीं है। – HimBromBeere

6

व्यक्तिगत रूप से, मैं स्टेटलेसनेस का एक बड़ा प्रशंसक हूं। क्या आपकी विधि को कक्षा की स्थिति तक पहुंच की आवश्यकता है? अगर उत्तर नहीं है (और शायद यह नहीं है, अन्यथा आप इसे एक स्थिर विधि बनाने पर विचार नहीं करेंगे), तो हाँ, इसके लिए जाओ।

राज्य तक कोई पहुंच कम सिरदर्द नहीं है। जैसे कि अन्य वर्गों द्वारा आवश्यक निजी सदस्यों को छिपाने का अच्छा विचार है, राज्य को उन सदस्यों से छिपाना अच्छा विचार है जिनकी आवश्यकता नहीं है। कम पहुंच का मतलब कम कीड़े हो सकता है। इसके अलावा, यह थ्रेडिंग को आसान बनाता है क्योंकि स्थिर सदस्यों को थ्रेड-सुरक्षित रखना बहुत आसान होता है। एक प्रदर्शन विचार भी है क्योंकि रनटाइम को को को स्थिर तरीकों के पैरामीटर के रूप में संदर्भित करने की आवश्यकता नहीं है।

बेशक नकारात्मकता यह है कि यदि आपको कभी पता चलता है कि आपकी पूर्व स्थैतिक विधि को किसी कारण से राज्य तक पहुंचना होगा, तो आपको इसे बदलना होगा। अब मैं समझता हूं कि यह सार्वजनिक एपीआई के लिए एक समस्या हो सकती है, इसलिए यदि यह सार्वजनिक वर्ग में सार्वजनिक विधि है, तो शायद आपको इसके प्रभावों के बारे में सोचना चाहिए। फिर भी, मैंने कभी भी असली दुनिया में एक अभिवादन का सामना नहीं किया है जहां यह वास्तव में एक समस्या का कारण बनता है, लेकिन शायद मैं भाग्यशाली हूं।

तो हाँ, इसके लिए, हर तरह से जाओ।

+0

एक स्थैतिक विधि अभी भी राज्य तक पहुंच सकती है। यह सिर्फ उस वस्तु से राज्य को पास कर देता है। इसके विपरीत, उदाहरण फ़ील्ड में जरूरी स्थिति नहीं है। –

2

व्यक्तिगत रूप से मेरे पास स्थिर बनाने के अलावा कोई विकल्प नहीं होगा। Resharper इस मामले में एक चेतावनी जारी करता है और हमारे प्रधान मंत्री के पास एक नियम है "Resharper से कोई चेतावनी नहीं"।

+1

आप अपनी रीशेर्पर सेटिंग्स बदल सकते हैं: पी –

+1

यदि यह इतना आसान था कि हमारे पास रिशेर्पर से कोई पहनावा नहीं था ... कभी :) – Prankster

4

यदि आप कुछ लाइनों को दोबारा करने में सक्षम थे और परिणामी विधि स्थैतिक हो सकती है, तो शायद यह संकेत है कि उस विधि से निकाली गई रेखाएं उस वर्ग में शामिल नहीं हैं, और आपको उन्हें अपनी कक्षा में ले जाने पर विचार करें।

1

आप अपने तरीके और कक्षाओं के बारे में सोचना चाहिए:

  • आप उन्हें कैसे उपयोग करने के लिए जा रहे हैं?
  • क्या आपको अपने कोड के विभिन्न स्तरों से उन्हें बहुत से acces की आवश्यकता है?
  • क्या यह एक विधि/वर्ग है जिसका उपयोग मैं लगभग हर विचारशील परियोजना में कर सकता हूं।

यदि अंतिम दो 'हां' हैं, तो आपकी विधि/कक्षा शायद स्थिर होनी चाहिए।

सबसे अधिक इस्तेमाल किया जाने वाला उदाहरण शायद Math वर्ग है। प्रत्येक प्रमुख ओओ भाषा में यह है और सभी विधियां स्थैतिक हैं। क्योंकि आपको किसी भी समय, बिना किसी उदाहरण के, कहीं भी उनका उपयोग करने में सक्षम होना चाहिए।

एक और अच्छा उदाहरण Reverse() विधि सी # में है।
यह Array कक्षा में एक स्थिर विधि है। यह आपके सरणी के क्रम को उलट देता है।

कोड:

public static void Reverse(Array array) 

यह भी वापस नहीं करता है कुछ भी, अपने सरणी उलट है, क्योंकि सभी सरणियों सरणी वर्ग के उदाहरण हैं।

+0

मठ एक बुरा उदाहरण है। मुझे लगता है कि यह बेहतर है: newnumber = number.round (2) newnumber = Math.round (संख्या) – graffic

+3

मैथ क्लास स्थिर कक्षाओं का उपयोग करने का एक आदर्श उदाहरण है। इस विषय के बारे में यही है, इस बारे में नहीं कि आप संख्याओं को कैसे गोल करना पसंद करते हैं ... – KdgDev

1

जब तक आप नई विधि निजी स्थिर बनाते हैं तो यह एक तोड़ने वाला परिवर्तन नहीं है।

आप स्थिर तरीके के रूप में चिह्नित करने के बाद, संकलक इन सदस्यों को गैर आभासी कॉल साइटों फेंकना होगा: वास्तव में, FxCop इस मार्गदर्शन अपने नियमों में से एक (http://msdn.microsoft.com/en-us/library/ms245046(VS.80).aspx) के रूप में निम्नलिखित जानकारी के साथ शामिल हैं। गैर-वर्चुअल कॉल साइट्स को उत्सर्जित करने से प्रत्येक कॉल के लिए रनटाइम पर चेक रोक दिया जाएगा जो सुनिश्चित करता है कि वर्तमान ऑब्जेक्ट पॉइंटर गैर-शून्य है। इसका परिणाम प्रदर्शन-संवेदनशील कोड के लिए एक मापनीय प्रदर्शन लाभ हो सकता है। कुछ मामलों में, वर्तमान ऑब्जेक्ट इंस्टेंस तक पहुंचने में विफलता एक शुद्धता समस्या का प्रतिनिधित्व करती है। हालांकि इस नियम एक प्रदर्शन के रूप में वर्गीकृत किया जाता है

:

कहा जा रहा है, डेविड कीन से पहली टिप्पणी अधिक संक्षेप कह यह वास्तव में प्रदर्शन लाभ के बारे में की तुलना में सही होने के बारे में अधिक है द्वारा चिंताओं को सारांशित मुद्दा, एक विधि स्थैतिक बनाने में प्रदर्शन सुधार केवल 1% है। इसके बजाय, यह एक शुद्धता मुद्दा है जो किसी अन्य घटना सदस्यों का उपयोग करने में विफलता के कारण सदस्य में अपूर्ण या बग का संकेत दे सकता है। विज़ुअल बेसिक में एक विधि स्थिर (साझा) को चिह्नित करना यह उदाहरण के राज्य को छूने के अपने इरादे से स्पष्ट करता है। एक "इस" पैरामीटर के बिना

स्टेटिक काम करता है, जब JIT'd, कहा जाता है:

1

मैं निश्चित रूप से एक अलग कारण के लिए कुछ भी स्थिर में मैं कर सकते हैं बारी होगी। इसका मतलब है, उदाहरण के लिए, कि 3 पैरामीटर गैर स्थैतिक फ़ंक्शन (सदस्य विधि) स्टैक पर 4 पैरा के साथ धक्का दिया जाता है।

एक स्थिर फ़ंक्शन के रूप में संकलित एक ही फ़ंक्शन को 3 पैरामीटर के साथ बुलाया जाएगा। यह जेआईटी के लिए रजिस्टरों को मुक्त कर सकता है और स्टैक स्पेस को संरक्षित कर सकता है ...

1

मैं "केवल निजी विधियों को स्थिर" शिविर में हूं। एक सार्वजनिक विधि बनाना युग्मन को पेश कर सकता है जिसे आप नहीं चाहते हैं और टेस्टेबिलिटी कम कर सकते हैं: आप सार्वजनिक स्थैतिक विधि को रोक नहीं सकते हैं।

यदि आप एक इकाई को सार्वजनिक स्थैतिक विधि का उपयोग करने वाली विधि का परीक्षण करना चाहते हैं, तो आप स्थैतिक विधि का भी परीक्षण कर सकते हैं, जो शायद आप नहीं चाहते हैं।

4

मुझे आश्चर्य है कि बहुत कम लोग वास्तव में यहां encapsulation का उल्लेख कर रहे हैं। एक इंस्टेंस विधि स्वचालित रूप से सभी निजी (उदाहरण) फ़ील्ड, गुणों और विधियों तक पहुंच होगी। आधार वर्गों से विरासत में प्राप्त सभी संरक्षित लोगों के अलावा।

जब आप कोड लिखते हैं तो आपको इसे लिखना चाहिए ताकि आप जितना संभव हो उतना कम से कम खुलासा कर सकें और ताकि आपके पास जितना संभव हो उतना छोटा हो।

तो हाँ, आपके कोड को तेज़ी से बनाना महत्वपूर्ण हो सकता है, यदि आप अपनी विधियों को स्थिर बना रहे हैं, लेकिन आमतौर पर अधिक महत्वपूर्ण है तो यह भी आपके कोड को जितना संभव हो सके बग बनाने में असमर्थ है। यह हासिल करने का एक तरीका यह है कि आपके कोड को "निजी सामान" जितनी कम संभव हो सके।

यह पहली नज़र में अप्रासंगिक प्रतीत हो सकता है क्योंकि ओपी स्पष्ट रूप से रिफैक्टरिंग के बारे में बात कर रहा है जो इस परिदृश्य में गलत नहीं हो सकता है और कोई भी नई बग नहीं बना सकता है, हालांकि भविष्य में यह रिफैक्टर कोड बनाए रखा जाना चाहिए और संशोधित किया गया है जो आपके कोड को बनाता है नई बग के संबंध में एक बड़ी "हमले की सतह" अगर उसके पास निजी इंस्टेंस सदस्यों तक पहुंच है। तो आम तौर पर मुझे लगता है कि निष्कर्ष यह है कि "हां अधिकतर आपकी विधियां स्थैतिक होनी चाहिए" जब तक उन्हें स्थिर न होने के अन्य कारण हैं। और यह बस इसलिए है क्योंकि यह "encapsulation और डेटा छिपाने और सुरक्षित 'कोड' का बेहतर उपयोग" है ...

0

मैं इसे सामान्य कार्यों के कार्यात्मक परिप्रेक्ष्य से आम तौर पर देखता हूं। क्या इसे एक इंस्टेंस विधि होने की आवश्यकता है? यदि नहीं, तो आप उपयोगकर्ता को वेरिएबल्स में गुजरने और मौजूदा इंस्टेंस के राज्य को उलझाने के लिए मजबूर करने से लाभ नहीं उठा सकते हैं। (ठीक है, आप अभी भी राज्य को उलझा सकते हैं, लेकिन बिंदु, डिज़ाइन द्वारा ऐसा नहीं किया जाता है।) मैं आम तौर पर सार्वजनिक सदस्यों के रूप में उदाहरण विधियों को डिज़ाइन करता हूं और निजी सदस्यों को स्थिर बनाने के लिए अपना सर्वश्रेष्ठ प्रयास करता हूं। यदि आवश्यक हो (आप तो और अधिक आसानी से उन्हें अन्य वर्गों बाद में निकाल सकते हैं

1

स्वाभाविक स्थिर तरीकों कि बनाया किसी कारण के लिए कर रहे गैर स्थिर बस कष्टप्रद हैं बुद्धि के लिए:।।

मैं अपने बैंक कॉल और के लिए पूछना मेरी संतुलन।
वे मेरे खाता संख्या के लिए पूछना।
पर्याप्त मेला। उदाहरण विधि।

मैं अपने बैंक कॉल और उनके डाक पते के लिए पूछना।
वे मेरे खाता संख्या।
WTF के लिए पूछना? विफल — किया जाना चाहिए था स्थिर विधि

+1

क्या होगा यदि अलग-अलग शाखाओं द्वारा विभिन्न ग्राहकों की सेवा की जाती है? बैंक के मुख्य कार्यालय में मेलिंग पत्राचार इसे अंततः उचित शाखा में ले जा सकता है, लेकिन इसका मतलब यह नहीं है कि एक ग्राहक को उस विशेष शाखा के पते का उपयोग करके बेहतर सेवा नहीं दी जाएगी जो उसकी सेवा करता है। – supercat

संबंधित मुद्दे

 संबंधित मुद्दे