একটি ইন্টারফেস পিছনে পদ্ধতি বাস্তব বাস্তবায়ন নেভিগেট করার কোন উপায় আছে?


180

ভিজ্যুয়াল স্টুডিওতে, আপনি যখন কোনও মেথড কল ডান ক্লিক করেন, আপনি কোনও ক্লাসের অভ্যন্তরে সেই পদ্ধতিটি বাস্তবায়নে যান তবে আপনি যদি কোনও ইন্টারফেসের মাধ্যমে এই পদ্ধতিটি অ্যাক্সেস করেন তবে: সেক্ষেত্রে আপনি সত্যিকারের বাস্তবায়নে নয় ইন্টারফেস পদ্ধতিতে যান।

এই প্রকৃত বাস্তবায়ন অ্যাক্সেস করার জন্য কি কোনও উপায় / টিপস (কী শর্টকাট বা কিছু) আছে? অন্যথায় আপনি কিছু মন্তব্য যুক্ত করতে আটকে গেছেন কেবল এটির স্মরণে যা আপনি বাস্তবায়ন করেছেন যা বাস্তবে উত্পাদনশীল এবং ত্রুটিযুক্ত নয়!

আপডেট: আকর্ষণীয় উত্তর তবে আমি সত্যই সন্তুষ্ট নই কারণ সবগুলি জটিল। আমি একটি সুনির্দিষ্ট উদাহরণ দেবো:

IInterface iInterface = someObject;                        
iInterface.someMethod();

প্রকৃতপক্ষে যদি ভিজুয়াল স্টুডিওটি পদ্ধতিটির কলটির উপরে কেবল একটি লাইন দেখতে কিছুটা চালাক ছিল তবে এটি দেখতে পাবে আসল বস্তুটি কোথায়। এবং এটি আমাকে প্রচুর কীস্ট্রোক বাঁচাতে এবং "সমস্ত উল্লেখগুলি সন্ধান করুন" ব্যবহার করা এড়াতে এবং তারপরে কোন লাইনে ডানদিকটি রয়েছে তা দেখতে আমার ক্লান্ত চোখে লাইনগুলি স্ক্যান করতে পারে :)


4
আপনি কীভাবে বাস্তবায়নটি দেখতে চেয়েছিলেন তা এটি কীভাবে জানবে? (সমস্ত পরিচিত প্রয়োগগুলি সন্ধানের জন্য আমি হায়ারার্কি টাইপটি দেখতে পারি, তবে এটি একটি রিশার্পার বৈশিষ্ট্য হতে পারে ... আমি নিশ্চিত নই))
জন স্কিটি

1
@ সুপের্যাট: ডিবাগ করার সময় আপনার অর্থ?
জন স্কিটি

2
রিশার্পার এটিকে নির্ধারণ করতে পারে না এমনগুলি চয়ন করার জন্য প্রয়োগের একটি তালিকা সরবরাহ করে এটি প্রয়োগ করে। দুর্দান্ত বৈশিষ্ট্যটি এবং "মিস রেফারেন্স অল রেফারেন্স" খুব বেশি ফিরিয়ে আনায় আমি এটিকে মিস করি না!
ফেন্টন

4
আমি প্রথমবার দেখেছি, জন স্কিটি "আমি নিশ্চিত নই" বলছে। সিও # প্রশ্নের জন্য এসও
মুথু গণপতি নাথন

3
@ মুথুগনপ্যাথি নাথন তিনি সম্ভবত একবার চেষ্টা করার মতো মানুষ হওয়ার চেষ্টা করছেন।
Vort3x

উত্তর:


257

আমি নিম্নলিখিতটি করি:

1) পদ্ধতিটিতে ডান ক্লিক করুন এবং "কল করুন শ্রেণিবিন্যাস দেখুন" ক্লিক করুন (বা শর্টকাট Ctrl + K, Ctrl + T)

2) "ইমপ্লিমেন্টস এক্স" ফোল্ডারটি প্রসারিত করুন যা এরপরে আপনাকে সেই পদ্ধতির সমস্ত প্রয়োগগুলি দেখাবে। সেখানে যেতে একটিতে ক্লিক করুন।

তুলনামূলকভাবে দ্রুত এবং সহজ। বিরক্তিকরভাবে যদিও ইন্টারফেসের জন্য এটি একটি সমতুল্য বলে মনে হচ্ছে না।


আপডেট : ভিজ্যুয়াল স্টুডিও 2015 আপডেট 1 হিসাবে, একটি পদ্ধতিতে ডান ক্লিক করুন এবং প্রয়োগে যান নির্বাচন করুন। আপনি এটিকে সরঞ্জামসমূহ> বিকল্পগুলি> পরিবেশ> কীবোর্ডের মাধ্যমে কীবোর্ড শর্টকাটে মানচিত্র করতে পারেন এবং সম্পাদনা.গোটোআইপিমেশনেশন কমান্ডের জন্য অনুসন্ধান করতে পারেন। ডিফল্ট শর্টকাটটি Ctrl+F12। ( F12ইন্টারফেসে নেভিগেট করবে)।



ভাল কাজ। আমি যখন দৃ Res়তা বোধ করছি যখন আমার সাথে পুনঃভাগ নেই
রোমান

5
আমি পদক্ষেপটি 1. এড়িয়ে যেতে সক্ষম হয়েছি যেখানে আপনি কাজ করছেন ঠিক সেখান থেকে "কল কলার ক্রিয়াকলাপটি দেখুন" (বা শর্টকাট Ctrl + K, Ctrl + T) এবং ইন্টারফেসটি একসাথে এড়িয়ে যেতে পারেন। আমি ভিএস 2013 এ আছি
টনি এল

বাস্তবায়নের পিক দেওয়ার জন্য কি কোনও হটকি আছে? আমি সফলতা না দিয়ে ALT-CTRL-F12 চেষ্টা করেছি tried (পিক ALT-F12 হয়)
লেভি ফুলার

46

ভিএস ২০১৩ এর সাহায্যে কেউ পদ্ধতিটির উপর কার্সার রাখতে পারে এবং নেভিগেট টু ... (সিটিআরএল +,) ব্যবহার করতে পারে এবং এটি যেখানে নাম ঘোষণা করা হয়েছে সেখানে সমস্ত অবস্থান প্রদর্শন করবে। যদি বিভিন্ন ইন্টারফেস একই পদ্ধতির নাম ব্যবহার করে তবে ভাল কাজ করে না।

ভিএস2015 আপডেট 1 এর সাথে এখন "ইমপ্লিমেন্টেশনটিতে যান" নামে একটি নতুন শর্টকাট রয়েছে।


4
আপনি পুনরায় ভাগ করা ব্যবহার করলে আপনি Alt + End ব্যবহার করতে পারেন।
brechtvhb

1
আমার পক্ষে কাজ করেনি। আমি ওয়েবের জন্য ভিএস এক্সপ্রেস 2013 ব্যবহার করছি।
আকিরা ইয়ামামোতো

আমি কীবোর্ড থেকে আপনার হ্যান্ডসফটি না নিয়ে এটিকে সর্বাধিক সোলা হিসাবে খুঁজে পাই। ধন্যবাদ রল্ফ
জেপি ভিঞ্জামুরি

1
এটি সম্ভব দ্রুততম সমাধান।
mbudnik

@ brechtvhb আপনি কমান্ডের জন্য কীবোর্ড শর্টকাটটি কাস্টমাইজ করে এটি আর + ছাড়াই Alt + এন্ডও সেট করতে পারেন Edit.NavigateTo:)
দৈত্যকোমোনকি

17

আমি ভিজ্যুয়াল স্টুডিও 2010 এবং ভিজ্যুয়াল স্টুডিও 2012 এর জন্য এই নির্দিষ্ট বৈশিষ্ট্যটি সরবরাহ করার জন্য ইনহেরিট্যান্স মার্জিন নামে একটি নিখরচায়িত এক্সটেনশন তৈরি করেছি, পাশাপাশি স্বাক্ষর ম্যাচের কারণে যখন কোনও পদ্ধতি একটি ইন্টারফেস পদ্ধতি প্রয়োগ করে তখন একটি স্পষ্ট ইঙ্গিত দেয়। বর্তমান সংস্করণে, নেভিগেট করতে আইটেমগুলির একটি মেনু পেতে আপনি কোনও গ্লাইফের ডানদিকে ক্লিক করতে পারেন।

উত্তরাধিকারের মার্জিন - ভিজ্যুয়াল স্টুডিও গ্যালারী

স্ক্রিনশট
(সূত্র: মাইক্রোসফট.কম )


3
পুনরায় ভাগের ট্রায়ালটি কাজের সময় শেষ হয়ে গেছে, এই এক্সটেনশনটি চেষ্টা করে দেখে তা দোলা দেয়! ধন্যবাদ দোস্ত
জর্জিও মিনার্ডি

15

ডান ক্লিক করুন তারপরে "সমস্ত রেফারেন্স খুঁজুন"।

এটি যেখানে ইন্টারফেসের ঘোষণা এবং ইন্টারফেস পদ্ধতির বাস্তবায়ন সহ পদ্ধতিটি ব্যবহৃত হয় সেখানে কোডের লাইনটি প্রদর্শন করবে। তারপরে আপনি কোডের স্থানে লাফাতে লাইনে ক্লিক করতে পারেন।


এটি নকল দেয় না।
রোব্যাটিকাস

1
@ রোব্যাটিকাস আসলে, তা করে। এটি সবচেয়ে সুবিধাজনক উপায় নয়, তবে বাস্তবায়নগুলি অন্যান্য সমস্ত উল্লেখগুলির সাথে মিশ্রিত হবে।
রেক্স এম

আমি এখনই কেবল এটিই করি তবে আমার চোখ ভাল না হওয়ায় এটি সর্বোপরি ক্লান্তিকর :)
ব্যবহারকারী310291

6
প্রতীকগুলি সন্ধানের বিকল্প হ'ল কল স্তরক্রম। এতে একটি ফোল্ডারের কাঠামোতে পদ্ধতিগুলি গোষ্ঠীভুক্ত করা হয়েছে: কল করুন '...', '...' এবং প্রয়োগসমূহ থেকে কল করুন ... '
ফিল কারসন

4
"সমস্ত রেফারেন্স খুঁজুন" জন্য শর্টকাট কী হল Shift + F12
ইসমাইলস

8

আপনার কাছে থাকা ভিজ্যুয়াল স্টুডিওর সংস্করণ অনুসারে আমি শর্তাধীন "হ্যাঁ" বলব।

আমি বর্তমানে আলটিমেটে অপারেটিং করছি এবং এটি যাচাই করার জন্য অন্য সংস্করণ নেই। এটি বলেছে, আলটিমেটের মধ্যে, আপনি বাস্তবায়নগুলি খুঁজে পেতে আর্কিটেকচার এক্সপ্লোরার ব্যবহার করতে পারেন। এটি ডান ক্লিক পদ্ধতির চেয়ে কিছুটা বেশি জড়িত তবে এটি কীভাবে কাজ করে তা এখানে's

  • যান View->Architecture Explorer(অথবা Ctrl-W, এন)
  • ক্লাস ভিউতে ক্লিক করুন এবং যে খালি খোলার তালিকায় আপনার ইন্টারফেস রয়েছে সেই নামস্থানটি সন্ধান করুন।
  • নামস্থান তালিকার ডানদিকে, একটি উল্লম্ব লেখা বোতামে হয় Types। এটি ক্লিক করুন
  • নির্বাচন করা Interfaces
  • তালিকা থেকে আপনার ইন্টারফেস চয়ন করুন
  • উল্লম্ব বোতাম যা বলেছে Membersতারপরে ডানদিকে প্রদর্শিত হবে। যে বোতামটি ক্লিক করুন
  • Implemented by(অধীনে) চয়ন করুনInbound Navigation ) এবং এটি আপনার ইন্টারফেসের প্রয়োগের একটি তালিকা সরবরাহ করবে।
  • বাস্তবায়নে ডাবল ক্লিক করা আপনাকে ক্লাসে নিয়ে যাবে।

আমি মোটামুটি নিশ্চিত যে আর্কিটেকচার এক্সপ্লোরার কেবলমাত্র চূড়ান্ত সংস্করণ, তবে এটি কার্যকর হবে।
রিচার্ড

ধন্যবাদ বেশ ভাল আমি থাম্ব আপ করেছি তবে এই প্রসঙ্গে আমি আমার কোডটি দ্রুত পরিবর্তন করতে চাই।
ব্যবহারকারী310291

6

2012 আলটিমেটের মধ্যে, আপনি সমাধান এক্সপ্লোরারটিতে ইন্টারফেসটি অনুসন্ধান করতে পারেন। ইন্টারফেসটিতে ডান ক্লিক করুন এবং "উত্পন্ন প্রকারগুলি" চয়ন করুন, প্রয়োগকৃত ক্লাসগুলি সমাধান এক্সপ্লোরারটিতে প্রদর্শিত হবে। এটি এক্সপ্রেসে কাজ করে কিনা তা নিশ্চিত নয়।


তা খেয়াল করেনি। ধন্যবাদ। <br/> এখন যদি সমাধানের এক্সপ্লোরারকে এটি প্রদর্শিত হয় যে এটি বর্তমানে প্রদর্শিত ফাইলটিতে এটি খুলতে পারে তবে আমি প্রথমে এডিটরের টুলটিপটি ফাইলের পথটি আনতে পারি নি যাতে নেভিগেট করতে পারে উত্স ফাইলটিতে সমাধান এক্সপ্লোরারটির মাধ্যমে, যেখানে আমি ইন্টারফেসের জন্য প্রয়োগিত বাইরের তালিকা নির্ধারণ করতে পারি ... সোর্স কোড নেভিগেশন আমার মনে হয় আরও গুরুত্বপূর্ণ বৈশিষ্ট্য হওয়া উচিত।
জর্জ

- সবেমাত্র "সিটিআরএল +], এস" কমান্ডটি আবিষ্কার করেছে যা সমাধান এক্সপ্লোরার ট্রিটিকে বর্তমান সম্পাদনা নথিতে (সক্রিয় দস্তাবেজের সাথে সিঙ্ক) প্রসারিত করে। ফলস্বরূপ ফাইল নোডটি এরপরে প্রবর্তিত মেনুতে 'ডেরাইভড প্রকার' কমান্ডটি অ্যাক্সেস করতে ডান ক্লিক করা যেতে পারে এমন প্রকারগুলি প্রকাশ করতে প্রসারিত হতে পারে। খুশী হলাম।
জর্জ

2
@George, এছাড়াও আপনি ভিসুয়াল স্টুডিও সর্বদা সরঞ্জামসমূহ মাধ্যমে সমাধান এক্সপ্লোরার বর্তমান খোলা ফাইল ট্র্যাক থাকতে পারে -> বিকল্পসমূহ -> প্রকল্প এবং সলিউশন -> সাধারণ -> "সমাধান এক্সপ্লোরার সক্রিয় আইটেমটি ট্র্যাক"
MajorRefactoring

ভিএস ২০১২ প্রিমিয়ামেও এই বৈশিষ্ট্য রয়েছে। ইন VS2015 এন্টারপ্রাইজ, এই ' উদ্ভূত প্রকারভেদ ' বৈশিষ্ট্য দুই বৈশিষ্ট্য বিভক্ত হয়েছে ' উদ্ভূত প্রকারভেদ ' & ' দ্বারা বাস্তবায়িত ', এমনকি nicer :)
cateyes

6

ভিজ্যুয়াল স্টুডিও 2015 আপডেট 1 (ডিসেম্বর 2015 প্রকাশিত) এখন স্ট্যান্ডার্ড হিসাবে ডান ক্লিক 'প্রয়োগে যাও' বৈশিষ্ট্য যুক্ত করেছে।


5

লোকেদের যারা রিশার্পার ব্যবহার করে তাদের জন্য, সিটিআরএল + এফ 12 টিপলে আপনি ক্লাস পদ্ধতিতে সরাসরি যেতে পারবেন!


4

যদি সম্ভব না হয়. আপনি যা বর্ণনা করছেন তা কেবল তখনই বোধগম্য হবে যদি ইন্টারফেসটি 1 টি প্রয়োগের মধ্যে সীমাবদ্ধ থাকে।

এই উদাহরণ বিবেচনা করুন:

interface IWrite 
{ 
 void Write(); 
}
class A : IWrite { 
  public void Write() { Console.WriteLine("A"); } 
}
class B : IWrite { 
  public void Write() { Console.WriteLine("B"); } 
}
class X : IWrite { 
  private readonly string _x;
  public X(string x) {
    _x = x;
  } 
  public void Write() { Console.WriteLine(_x); } 
}

class UseIWrite()
{
  public void Use(IWrite iwrite) 
  {
     iwrite.Write();
  }
}

আপনি যদি লিখন ইন ইউজআইরাইট প্রয়োগের কাজে যান তবে এটি আপনাকে ইন্টারফেসের ঘোষণার দিকে নিয়ে যায়, কারণ সেই সময়ে আইওয়ারাইট প্রয়োগের যে কোনও পদ্ধতিতে পাস করা যেতে পারে।

কৃতজ্ঞভাবে কিছু সরঞ্জাম উদাহরণস্বরূপ রিশার্পার আপনাকে পদ্ধতির সমস্ত ব্যবহার সন্ধান করার জন্য প্রস্তাব দেয়, যাতে আপনি সহজেই পছন্দসই বাস্তবায়নে নেভিগেট করতে পারেন।


1
… এবং যদি কেবলমাত্র একটি বাস্তবায়ন হয়, আর # আপনাকে আরও অগ্রগতি ছাড়াই সরাসরি সেখানে নিয়ে যাবে।
জে

1
এটি নিখরচায় নয়, তবে ভিজ্যুয়াল স্টুডিওও নয়। আপনার সময় মূল্য কত? :)
জিম আর্নল্ড

3
আমি যে অর্থ প্রদান করতে চাই না তা নয়, এটি মূলত: এটি বেশ সাধারণ জ্ঞানের বৈশিষ্ট্য, এটি ইতিমধ্যে লজ্জাজনক যে আপনি ইতিমধ্যে ভিএসের জন্য যখন অর্থ প্রদান করেছেন তখন আপনাকে আরও একবার অর্থ প্রদান করতে হবে :)
ইউজার 310291

3
@ ব্যবহারকারী310291 আমি যখন আপনার সাথে একমত হই, তৃতীয় পক্ষের বাক্সটি সরবরাহ না করার জন্য "শাস্তি" দেওয়ার জন্য আপনি যে বৈশিষ্ট্যটি চান ঠিক সেই পণ্যটি কিনছেন না, আপনার মুখের তীব্রতার জন্য আপনার নাক কেটে দিচ্ছে।
তারকাডাল

1
রিশার্পার সমস্ত ব্যবহার না করে এটি সরবরাহ করে। আপনি কোন প্রয়োগে যেতে চান তা নির্বাচন করতে পারেন।
মাইকেল জয়েস

4

আপডেট 1 সহ ভিজ্যুয়াল স্টুডিও এখন এই বৈশিষ্ট্যটি প্রয়োগ করে! সদস্যকে ঠিক ডান ক্লিক করুন এবং আপনাকে "ডাব্লু সংজ্ঞাতে যান" এর নীচে "বাস্তবায়নে যান" দেখতে হবে।


2

এই নতুন ফ্রি ভিজ্যুয়াল স্টুডিও 2013 এক্সটেনশনটি দেখুন - বাস্তবায়নকারী । এটি ভিজ্যুয়াল স্টুডিও সম্পাদক প্রসঙ্গ মেনুতে "প্রয়োগে যান" বিকল্প যুক্ত করে।

এটি রিশার্পারের মতো নির্ভরযোগ্য এবং দ্রুত নয়, তবে এটি ঠিক কাজ করে।


2

আপনি Ctrl + F12শর্টকাট চেষ্টা করতে পারেন । এটি আপনাকে বাস্তবায়নের দিকে নিয়ে যাবে ঠিক যেমন এটি আপনাকে এফ 12 ব্যবহার করে অ ইন্টারফেস পদ্ধতিতে পরিচালিত করবে। [আমি এটি ভিএস 2017 এ চেষ্টা করেছি, অন্যান্য সংস্করণ সম্পর্কে নিশ্চিত নয়]


1
এই শর্টকাটটি টাইপ স্ক্রিপ্ট সহ vscode এ সূক্ষ্মভাবে কাজ করে।
জুহাইর তাহা

1

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

এমন অন্যান্য সরঞ্জাম রয়েছে যা আপনার অ্যাপ্লিকেশনটির কাঠামো সম্পর্কে আরও কিছু বলতে পারে, যার মধ্যে রয়েছে কোন শ্রেণি প্রয়োগ করে কোন ইন্টারফেস, কোন পদ্ধতিটি কোন পদ্ধতিতে অন্য পদ্ধতিকে অতিক্রম করে। আমি ব্যক্তিগতভাবে ইনস্ট্যান্ডস্ট ফর সি / সি ++ ব্যবহার করা পছন্দ করি।


1

ঘোষণায় যেতে ইন্টারফেস পদ্ধতিটি খুলবে। বাস্তবায়নে গিয়ে, আপনাকে বা আপনার জন্য তালিকা তৈরি করবে, যে ইন্টারফেস পদ্ধতির কোডটি প্রয়োগ করে (এমন ইন্টারফেস পদ্ধতি নিজেই নয়) classes

হালনাগাদ

জন স্কিটি মন্তব্যগুলিতে যেমন উল্লেখ করেছেন (এবং আমি উত্তর দেওয়ার আগেই মিস করেছি), আমি যে বৈশিষ্ট্যটি বর্ণনা করেছি তা রিসার্পার বৈশিষ্ট্য হতে পারে ... ভিজ্যুয়াল স্টুডিও নয়।


0

না, এটি সম্ভব নয়, ভিএস দ্বারা পরিচালিত মেমরি কোড কাঠামোয় বিস্তৃত সত্ত্বেও, কোড নেভিগেশন বরং ... কৃপণ।

দেখে মনে হচ্ছে একমাত্র বিকল্প হ'ল "সমস্ত রেফারেন্স খুঁজুন" সহ একটি বৈশ্বিক অনুসন্ধান, তারপরে টাইপকৃত মান ঘোষণা, রূপান্তর ইত্যাদি বা কোড সম্পাদক ছাড়া অন্য ভিএসের মধ্যে অন্যান্য সরঞ্জামের ব্যবহার বাদ দেওয়ার জন্য ফলাফলের তালিকার ম্যানুয়াল অনুসন্ধান। সব বরং জটিল এবং হতাশাজনক।

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