আপনি সি # এর জন্য কি রিশার্পার 4+ লাইভ টেম্পলেট ব্যবহার করেন? [বন্ধ]


94

আপনি সি # এর জন্য কি রিসার্চার 4.0 টেম্পলেট ব্যবহার করেন?

আসুন নিম্নলিখিত ফর্ম্যাট এ ভাগ করুন:


[শিরোনাম]

.চ্ছিক বিবরণ

শর্টকাট: শর্টকাট এতে
উপলভ্য: [উপলভ্যতা সেটিং]

// Resharper template code snippet
// comes here

ম্যাক্রোস বৈশিষ্ট্য (উপস্থিত থাকলে):

  • ম্যাক্রো 1 - মান - সম্পাদনযোগ্যঅ্যাকিউরেন্স
  • ম্যাক্রো 2 - মান - সম্পাদনযোগ্যঅ্যাকিউরেন্স


এর পরিবর্তে প্রোগ্রামার.এসইতে থাকা উচিত কারণ এটি সাবজেক্টিভ?
টিমভি

এই প্রশ্নটি গঠনমূলক নয় এবং পুনরায় ভাগ করা লাইভ টেম্পলেট এবং ভিজ্যুয়াল স্টুডিও টেম্পলেট সম্পর্কে প্রচুর তথ্য রয়েছে। programmingsolve.blogspot.com/2014/04/snippet-away.html
থুলানী চিভান্দিকওয়া

উত্তর:


31

সরল লাম্বদা

এত সহজ, এত দরকারী - একটি সামান্য ল্যাম্বদা:

শর্টকাট : এক্স

উপলব্ধ : সি # যেখানে অভিব্যক্তি অনুমোদিত allowed

x => x.$END$

ম্যাক্রোস: কিছুই নয়।


22

'নিষ্পত্তি (বুল)' পদ্ধতি প্রয়োগ করুন

জো ডাফির ডিসপোজ প্যাটার্ন প্রয়োগ করুন

শর্টকাট: নিষ্পত্তি

এতে উপলব্ধ: সি # 2.0+ ফাইল যেখানে সদস্যের ঘোষণার অনুমতি রয়েছে type

public void Dispose()
{
    Dispose(true);
    System.GC.SuppressFinalize(this);
}

protected virtual void Dispose(bool disposing)
{
    if (!disposed)
    {
        if (disposing)
        {
            if ($MEMBER$ != null)
            {
                $MEMBER$.Dispose();
                $MEMBER$ = null;
            }
        }

        disposed = true;
    }
}

~$CLASS$()
{
    Dispose(false);
}

private bool disposed;

ম্যাক্রো বৈশিষ্ট্য :

  • মেম্বার - সিস্টেমের পরিবর্তনশীল প্রস্তাব দিন ID
  • ক্লাস - প্রকারের নাম সহ

14

কিছু ধরণের জন্য নতুন ইউনিট পরীক্ষার ফিক্সচার তৈরি করুন

শর্টকাট: এনটিএফ এতে
উপলভ্য: সি # 2.0+ ফাইল যেখানে সদস্য ঘোষণার বা নেমস্পেসের ঘোষণার অনুমতি রয়েছে

[NUnit.Framework.TestFixtureAttribute]
public sealed class $TypeToTest$Tests
{
    [NUnit.Framework.TestAttribute]
    public void $Test$()
    {
        var t = new $TypeToTest$()
        $END$
    }
}

ম্যাক্রোস:

  • টাইপটোস্ট - কোনওটি নয় - # 2
  • পরীক্ষা - কোনটিই নয় - ভি

13

কোনও স্ট্রিং নাল বা ফাঁকা কিনা তা পরীক্ষা করে দেখুন।

আপনি নেট। 4 ব্যবহার করছেন তবে আপনি স্ট্রিং ব্যবহার করতে পছন্দ করতে পারেন sসনলআরওহাইটস্পেস ()।

শর্টকাট : sne

এতে উপলব্ধ : সি # 2.0+ যেখানে অভিব্যক্তি অনুমোদিত।

string.IsNullOrEmpty($VAR$)

ম্যাক্রো বৈশিষ্ট্য :

  • ভিএআর - টাইপ স্ট্রিংয়ের একটি পরিবর্তনশীল প্রস্তাব করুন। সম্পাদনযোগ্য = সত্য।

11

নতুন একা ইউনিট পরীক্ষা কেস তৈরি করুন

শর্টকাট: এনটিসি এতে
উপলভ্য: সি # 2.0+ ফাইল যেখানে সদস্যের ঘোষণার অনুমতি রয়েছে

[NUnit.Framework.TestAttribute]
public void $Test$()
{
    $END$
}

ম্যাক্রোস:

  • পরীক্ষা - কোনটিই নয় - ভি

10

বর্তমান ধরণের জন্য একটি লগ 4 নেট লগার ঘোষণা করুন।

শর্টকাট: লগ

এতে উপলব্ধ: সি # 2.0+ ফাইল যেখানে সদস্যের ঘোষণার অনুমতি রয়েছে type

private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof($TYPE$));

ম্যাক্রো বৈশিষ্ট্য :

  • টাইপ - টাইপ নাম ধারণ করে

পুনরায় তীক্ষ্ণ সহ, কেন এটি ব্যবহার করবেন না? প্রাইভেট স্ট্যাটিক কেবল পঠনযোগ্য ILog _ লোগার = লগম্যানেজ.গেটলোগার (টাইপফ (r কার্টটাইপ $)); $ কারআরটাইপ with সহ: প্রকারের নাম সহ
হেনরিক

কারণ পরে যদি আমি টাইপটির নামটি পরিবর্তন করি তবে আমাকে সেই কোডের লাইনটিও আপডেট করতে হবে। খনি আরও গতিশীল।
ক্রিস ব্র্যান্ডসমা

রিশার্পার স্বয়ংক্রিয়ভাবে টাইপের নামের সমস্ত দৃষ্টান্তের নাম পরিবর্তন করে। গেটটাইপ () খুব ধীর।
রিচার্ড ডিঙ্গওয়াল

9

এমএস টেস্ট ইউনিট পরীক্ষা

আর্ট অফ ইউনিট পরীক্ষায় পাওয়া এএএ সিন্ট্যাক্স এবং নামকরণ কনভেনশন ব্যবহার করে নতুন এমএস টেস্ট ইউনিট পরীক্ষা

শর্টকাট: টেস্টিং (বা tst, বা আপনি যা চান) এতে
উপলভ্য: সি # 2.0+ ফাইল যেখানে সদস্যের ঘোষণার অনুমতি রয়েছে

[TestMethod]
public void $MethodName$_$StateUnderTest$_$ExpectedBehavior$()
{
    // Arrange
    $END$

    // Act


    // Assert

}

ম্যাক্রোস বৈশিষ্ট্য (উপস্থিত থাকলে):

  • মেথডনেম - পরীক্ষার অধীনে পদ্ধতির নাম
  • স্টেটউন্ডারস্টেস্ট - যে রাষ্ট্রটি আপনি পরীক্ষার চেষ্টা করছেন
  • প্রত্যাশিত আচরণ - আপনি যা প্রত্যাশা করছেন

8

ভেরিয়েবলটি নাল কিনা তা পরীক্ষা করে দেখুন

শর্টকাট: ifn এতে
উপলব্ধ: সি # 2.0+ ফাইল

if (null == $var$)
{
    $END$
}

ভেরিয়েবলটি নাল নয় কিনা তা পরীক্ষা করুন

শর্টকাট: ifnn এতে
উপলব্ধ: সি # 2.0+ ফাইল

if (null != $var$)
{
    $END$
}

15
সি ++ থেকে সি # তে রূপান্তরটি আপনার সাথে কীভাবে আচরণ করেছে?
টাই

W / 'smart var for এর জন্য ম্যাক্রো হিসাবে' স্মার্ট সমাপ্তি কার্যকর কর 'ভাল হয়
mklein

চমৎকার "ইয়োদা শর্ত" !! ...
বুদ্ধিমানের

7

ক্লাস কনস্ট্রাক্টরের জন্য স্টাইলকপ-কমপ্লায়েন্ট সংক্ষিপ্তসার লিখুন

(যদি আপনি প্রতিটি নির্মাণকারীর জন্য দীর্ঘ স্ট্যান্ডার্ড সারসংক্ষেপে ক্রমাগত টাইপ করে ক্লান্ত হয়ে থাকেন তবে এটি স্টাইলকপ নিয়ম SA1642 মেনে চলে)

শর্টকাট: সিসাম

এতে উপলব্ধ: সি # 2.0+

Initializes a new instance of the <see cref="$classname$"/> class.$END$

ম্যাক্রোস:

  • classname - ধারণকারী টাইপ নাম - ভী

7

দৃsert়.আরেকিউয়াল

ইউনিট পরীক্ষায় জোর যুক্ত করার জন্য সহজ টেম্পলেট

শর্টকাট : ae
উপলভ্য : সি # 2.0+ ফাইলগুলিতে যেখানে বিবৃতি অনুমোদিত

Assert.AreEqual($expected$, $actual$);$END$

সাবলীল সংস্করণ:

Assert.That($expected$, Is.EqualTo($actual$));$END$

7

লম্বাডাস প্রচুর

সহজে বাসা বাঁধার জন্য একটি পৃথক ভেরিয়েবল ঘোষণার সাথে ল্যাম্বডা এক্সপ্রেশন তৈরি করুন।

শর্টকাট: লা, এলবি, এলসি

এতে উপলব্ধ: সি # 3.0+ ফাইল যেখানে অভিব্যক্তি বা কোয়েরি ক্লজ অনুমোদিত allowed

লা হিসাবে সংজ্ঞায়িত করা হয়:

x => x.$END$

এলবি হিসাবে সংজ্ঞায়িত করা হয়:

y => y.$END$

এলসি হিসাবে সংজ্ঞায়িত করা হয়:

z => z.$END$

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

items.ForEach(x => x.Children.ForEach(y => Console.WriteLine(y.Name)));

ল্যাম্বদা আর্গুমেন্টের জন্য x, y নামগুলি ব্যবহার করা ঠিক কি? আপনার যদি দু-তিন স্তরের নেস্টেড ল্যাম্বডাস থাকে তবে আপনি সম্ভবত প্রতিটি স্তরের x, y, z এর অর্থ কী তা মুখস্ত করতে চান না। আপনার উদাহরণ বিবেচনা করে, আমি আইটেমগুলির সাথে যাব For ফরচ প্রতিটি (আইটেম => ... এবং আইটেম C শিশু। শিশুদের জন্য ( ল্যাম্বডাস আর্গুমেন্টের জন্য নামকরণ লুপ ইনডেক্সের জন্য একইরকম আচরণ করা যেতে পারে বলে মনে হয় না আমি, জে, কে
ইলিয়া ইভানভ

6

এটার জন্য অপেক্ষা কর...

কনসোল অ্যাপ্লিকেশন শেষ হওয়ার আগে ব্যবহারকারীর ইনপুটটির জন্য বিরতি দিন।

শর্টকাট: বিরতি

এতে উপলব্ধ: সি # 2.0+ ফাইল যেখানে বিবৃতি অনুমোদিত

System.Console.WriteLine("Press <ENTER> to exit...");
System.Console.ReadLine();$END$

আমি ব্যবহার করব Console.ReadKey(true);এবং যে কোনও কী চাপতে দেওয়া হবে।
মাস্টারমাস্টিক

6

নির্ভরতা সম্পত্তি উত্পাদন

নির্ভরতার সম্পত্তি উত্পন্ন করে

শর্টকাট: ডিপি এতে
উপলব্ধ: সি # 3.0 যেখানে সদস্য ঘোষণার অনুমতি রয়েছে

public static readonly System.Windows.DependencyProperty $PropertyName$Property =
        System.Windows.DependencyProperty.Register("$PropertyName$",
                                                   typeof ($PropertyType$),
                                                   typeof ($OwnerType$));

    public $PropertyType$ $PropertyName$
    {
        get { return ($PropertyType$) GetValue($PropertyName$Property); }
        set { SetValue($PropertyName$Property, value); }
    }

$END$

ম্যাক্রোস বৈশিষ্ট্য (উপস্থিত থাকলে):

প্রপার্টি নাম - ম্যাক্রো নেই - # 3
সম্পত্তি টাইপ - অনুমান করুন প্রকারটি এই মুহুর্তে প্রত্যাশিত - # 2
মালিকের টাইপ - প্রকারের নাম ধারণ করে - কোনও সম্পাদনযোগ্য ঘটনা নেই


5

সম্পত্তি পরিবর্তিত বিজ্ঞপ্তি

এটি আমার প্রিয় কারণ আমি এটি প্রায়শই ব্যবহার করি এবং এটি আমার জন্য অনেক কাজ করে।

শর্টকাট : এনপিসি

এতে উপলব্ধ : সি # 2.0+ যেখানে অভিব্যক্তি অনুমোদিত।

if (value != _$LOWEREDMEMBER$)
{
  _$LOWEREDMEMBER$ = value;
  NotifyPropertyChanged("$MEMBER$");
}

ম্যাক্রোস :

  • সদস্য - সদস্যের নাম ধারণ করে। সম্পাদনাযোগ্য নয়। দ্রষ্টব্য: নিশ্চিত করুন যে এটি তালিকায় প্রথমটি রয়েছে।
  • নিম্নতর মেম্বার - ছোট ক্ষেত্রে প্রথম অক্ষরের সাথে সদস্যের মান। সম্পাদনাযোগ্য নয়।

ব্যবহার : একটি সম্পত্তি সেটারের ভিতরে এটি:

private string _dateOfBirth;
public string DateOfBirth
{
   get { return _dateOfBirth; }
   set
   {
      npc<--tab from here
   }
}

এটি ধরে নেওয়া হয় যে আপনার ব্যাকিং ভেরিয়েবলটি একটি "_" দিয়ে শুরু হয়। আপনি যা ব্যবহার করেন তা দিয়ে এটি প্রতিস্থাপন করুন। এটি ধরেও নিয়েছে যে আপনার কোনও সম্পত্তি পরিবর্তন পদ্ধতি এই জাতীয় কিছু রয়েছে:

private void NotifyPropertyChanged(String info)
{
   if (PropertyChanged != null)
   {
      PropertyChanged(this, new PropertyChangedEventArgs(info));
   }
}

বাস্তবে, আমি ব্যবহার করি এটির সংস্করণটি লাম্বদা ভিত্তিক ('আমি আমার ল্যাম্বডাসকে ভালবাসি!) এবং নীচে উত্পাদন করে। নীতিগুলি উপরের মত একই।

public decimal CircuitConductorLive
{
   get { return _circuitConductorLive; }
   set { Set(x => x.CircuitConductorLive, ref _circuitConductorLive, value); }
}

আমি যখন কোনও পরিশ্রমের জন্য পুরো INotifyPropertyChanged জিনিসটি করার জন্য অত্যন্ত মার্জিত এবং দরকারী পোস্টশার্প ব্যবহার করি না তখনই ।


5

দ্রুত প্রত্যাশিত প্রত্যাশা শর্টকাট

আমার ইউনিট পরীক্ষার বৈশিষ্ট্যে যুক্ত করার জন্য কেবল একটি দ্রুত শর্টকাট।

শর্টকাট : ই

এতে উপলভ্য : এতে উপলভ্য: সি # 2.0+ ফাইল যেখানে সদস্যের ঘোষণার অনুমতি রয়েছে

[ExpectedException(typeof($TYPE$))]

কেবলমাত্র একটি দ্রষ্টব্য নোট যে এটি এখন দু'টি সংস্করণ হয়ে গেছে যে প্রত্যাশিত ধারণাটি অ্যাসেটর ব্যবহারের পক্ষে NUnit এ অবচয় করা হয়েছে hআপনি <>
স্ট্রিসি

হ্যাঁ দয়া করে প্রত্যেকে প্রত্যাশিত
এক্সপ্লেশনঅ্যাট্রিবিউট

5

অটোম্যাপার সম্পত্তি ম্যাপিং

শর্টকাট: এফএম

এতে উপলব্ধ: সি # 2.0+ ফাইল যেখানে বিবৃতি অনুমোদিত

.ForMember(d => d$property$, o => o.MapFrom(s => s$src_property$))
$END$

ম্যাক্রোস:

  • সম্পত্তি - সম্পাদনাযোগ্য ঘটনা
  • src_property - সম্পাদনাযোগ্য ঘটনা

বিঃদ্রঃ:

আমি ল্যাম্বডাকে "ডট" ছেড়ে দিই যাতে আমি আঘাত করতে পারি। অবিলম্বে এবং সম্পত্তি বুদ্ধি পেতে। অটোম্যাপার প্রয়োজন ( http://automapper.codeplex.com/ )।


4

নুনিটের জন্য পরীক্ষার কেস স্টাব তৈরি করুন

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

শর্টকাট: এনটিএস এতে
উপলভ্য: সি # ২.০ ++ এমন ফাইল যেখানে সদস্যের ঘোষণার অনুমতি রয়েছে

[Test, Ignore]
public void $TestName$()
{
    throw new NotImplementedException();
}
$END$

আমি এই একটি পরিবর্তন না, কিন্তু স্পষ্ট Assert.Fail () শরীরে সঙ্গে aleriel.com/blog/2010/04/07/replace-paper-with-unit-tests
আদম লিয়ার

4

প্রয়োজন হলে ডাকা

উইনফর্মস অ্যাপ্লিকেশনগুলি বিকাশকালে কার্যকর যেখানে কোনও পদ্ধতিটি অ-ইউআই থ্রেড থেকে কল করা উচিত এবং সেই পদ্ধতিটির পরে ইউআই থ্রেডে কলটি মার্শাল করা উচিত।

শর্টকাট : চালান

এতে উপলব্ধ : সি # 3.0+ ফাইলের বিবৃতি অনুমোদিত

if (InvokeRequired)
{
    Invoke((System.Action)delegate { $METHOD_NAME$($END$); });
    return;
}

ম্যাক্রোস

  • METHOD_NAME - এতে সদস্যের নাম রয়েছে

আপনি সাধারণত কোনও প্রদত্ত পদ্ধতিতে প্রথম বিবৃতি হিসাবে এই টেম্পলেটটি ব্যবহার করবেন এবং ফলাফলটি সাদৃশ্যপূর্ণ:

void DoSomething(Type1 arg1)
{
    if (InvokeRequired)
    {
        Invoke((Action)delegate { DoSomething(arg1); });
        return;
    }

    // Rest of method will only execute on the correct thread
    // ...
}

4

নতুন সি # গাইড

একটি নতুন সিস্টেম উত্পন্ন করে.গুইড দৃষ্টান্তটি একটি নতুন উত্পাদিত গাইড মান থেকে শুরু করে

শর্টকাট: সিএসগুইড এতে উপলব্ধ: সি # 2.0+ ফাইলগুলিতে

new System.Guid("$GUID$")

ম্যাক্রো বৈশিষ্ট্য :

  • গিউডি - নতুন জিইউডি - মিথ্যা

ReSharper এর সাম্প্রতিক সংস্করণগুলিতে এখন ডিফল্টভাবে nguid শর্টকাট অন্তর্ভুক্ত ।
জেমি কিলিং

সত্য, তবে এটি কেবল একটি গাইড মান উত্পন্ন করে, সি # তে প্রারম্ভিক নয়।
কোডকাইজন

4

এমএসটিস্ট টেস্ট পদ্ধতি

এটি কিছুটা খোঁড়া তবে এটি দরকারী। আশা করি এর থেকে কেউ কিছুটা ইউটিলিটি পেয়ে যাবেন।

শর্টকাট: টেস্টমেথোদ

এ উপলব্ধ: সি # 2.0

[TestMethod]
public void $TestName$()
{
    throw new NotImplementedException();

    //Arrange.

    //Act.

    //Assert.
}

$END$

4

নুনিট সেটআপ পদ্ধতি

শর্টকাট: সেটআপ এতে
উপলভ্য: এতে উপলভ্য: সি # 2.0+ ফাইল যেখানে সদস্যের ঘোষণা প্রকারের অনুমতি রয়েছে

[NUnit.Framework.SetUp]
public void SetUp()
{
    $END$
}

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

এটির জন্য একটি উন্নতি ............ বেসরকারী U শ্রেণীরUnderTestType $ _classUnderTest; [NUnit.Framework.SetUp] সর্বজনীন শূন্য সেটআপ () {_classUnderTest = নতুন $ শ্রেণিUnderTestType $ ($ END $); }
বাইটেদেভ

4

নুনিট টিয়ারডাউন পদ্ধতি

শর্টকাট: টিয়ারডাউন এতে
উপলভ্য: এতে উপলভ্য: সি # 2.0+ ফাইল যেখানে সদস্যের ঘোষণা প্রকারের অনুমতি রয়েছে

[NUnit.Framework.TearDown]
public void TearDown()
{
    $END$
}

3

কোনও যুক্তি কখনই বাতিল হয় না তা নিশ্চিত করার জন্য স্যানিটি চেক তৈরি করুন

শর্টকাট: ean এতে
উপলব্ধ: সি # 2.0+ ফাইল যেখানে টাইপ স্টেটমেন্ট অনুমোদিত

Enforce.ArgumentNotNull($inner$, "$inner$");

ম্যাক্রোস:

  • অভ্যন্তরীণ - প্যারামিটার প্রস্তাব করুন - # 1

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


3

নতুন সিওএম ক্লাস

শর্টকাট : কমক্লাস

এতে উপলব্ধ : সি # 2.0+ ফাইল যেখানে সদস্য ঘোষণাপত্র বা নেমস্পেসের ঘোষণার অনুমতি রয়েছে

[ComVisible(true)]
[ClassInterface(ClassInterfaceType.None)]
[Guid("$GUID$")]
public class $NAME$ : $INTERFACE$
{
    $END$
}

ম্যাক্রোস

  • গিউডি - নতুন জিইউডি
  • নাম - সম্পাদনযোগ্য
  • ইন্টারফেস - সম্পাদনযোগ্য

4
দুর্দান্ত টেমপ্লেট, তবে এটি কোনও লাইভ টেম্পলেটের চেয়ে ফাইল টেম্পলেটের সাথে আরও উপযুক্ত।
ড্রই নোকস

3

দাওয়াত দাওয়াত প্রয়োজন হয় না

উইনফর্মস অ্যাপ্লিকেশনগুলি বিকাশকালে কার্যকর যেখানে আপনি নিশ্চিত হতে চান যে কোনও প্রদত্ত আইটেমের জন্য সঠিক থ্রেডটিতে কোড কার্যকর হচ্ছে। নোট করুন যে Controlবাস্তবায়ন ISynchronizeInvoke

শর্টকাট : আনি

এতে উপলব্ধ : সি # 2.0+ ফাইল বিবৃতি অনুমোদিত

Debug.Assert(!$SYNC_INVOKE$.InvokeRequired, "InvokeRequired");

ম্যাক্রোস

  • SYNC_INVOKE - এর পরিবর্তনশীল প্রস্তাব করুন SugSystem.ComponentModel.ISynchronizeInvoke

2

ট্রেস - রাইটলাইন, ফর্ম্যাট সহ

বিন্যাসিত স্ট্রিংয়ের সাথে ট্রেস যুক্ত করতে খুব সাধারণ টেম্পলেট (যেমন ডিবাগ.উইরাইটলাইন ইতিমধ্যে সমর্থন করে)।

শর্টকাট: ট্যল্ফ এতে
উপলব্ধ: সি # 2.0+ ফাইল যেখানে বিবৃতি অনুমোদিত

Trace.WriteLine(string.Format("$MASK$",$ARGUMENT$));

ম্যাক্রো বৈশিষ্ট্য:

  • তর্ক - value- সম্পাদনযোগ্যঅ্যাকিউরেন্স
  • মুখোশ - "{0}"- সম্পাদনাযোগ্যঅ্যাকিউরেন্স

1

নতুন টাইপমক বিচ্ছিন্ন জাল

শর্টকাট : জাল এতে
উপলব্ধ : [সি # 2.0 ফাইলে যেখানে বিবৃতি অনুমোদিত]

Y টিওয়াইপি $ $ নাম $ জাল = বিচ্ছিন্ন.ফেক.আইনস্ট্যান্স ();
আইসোলেট.ওহেন কল্ট (() => $ নাম $ ভুয়া।)

ম্যাক্রোস বৈশিষ্ট্য:
* Y টাইপ $ - একটি নতুন ভেরিয়েবলের জন্য প্রস্তাবিত প্রকারের পরামর্শ
* $ নাম $ - নিম্ন বর্ণের প্রথম অক্ষরের সাথে অন্য ভেরিয়েবলের ( প্রকারের ) মান


1

যেহেতু আমি এখনই ইউনিটির সাথে কাজ করছি, তাই আমার জীবনকে কিছুটা সহজ করার জন্য আমি কয়েকটি নিয়ে এসেছি:


এলিয়াস টাইপ করুন

শর্টকাট : টা এতে
উপলভ্য : * .xML; * .কনফিগ

<typeAlias alias="$ALIAS$" type="$TYPE$,$ASSEMBLY$"/>

প্রকার ঘোষণা

এটি কোনও প্রকারের নাম এবং তর্ক ছাড়াই

শর্টকাট : tp এতে
উপলভ্য : * .xML; * .কনফিগ

<type type="$TYPE$" mapTo="$MAPTYPE$"/>

প্রকারের ঘোষণা (নাম সহ)

এটি নাম সহ কোনও আর্গুমেন্ট নয়

শর্টকাট : tn এতে
উপলব্ধ : * .xML; * .কনফিগ

<type type="$TYPE$" mapTo="$MAPTYPE$" name="$NAME$"/>

কনস্ট্রাক্টর সহ ডিক্লেয়ারেশন টাইপ করুন

এটি নাম সহ কোনও আর্গুমেন্ট নয়

শর্টকাট : tpc এতে
উপলব্ধ : * .xML ; * .কনফিগ

<type type="$TYPE$" mapTo="$MAPTYPE$">
  <typeConfig>
    <constructor>
        $PARAMS$
    </constructor>
  </typeConfig>
</type>

ইত্যাদি ....


1

লগ 4 নেট এক্সএমএল কনফিগারেশন ব্লক

আপনি সরাসরি টেমপ্লেট আমদানি করতে পারেন:

<TemplatesExport family="Live Templates">
  <Template uid="49c599bb-a1ec-4def-a2ad-01de05799843" shortcut="log4" description="inserts log4net XML configuration block" text="  &lt;configSections&gt;&#xD;&#xA;    &lt;section name=&quot;log4net&quot; type=&quot;log4net.Config.Log4NetConfigurationSectionHandler,log4net&quot; /&gt;&#xD;&#xA;  &lt;/configSections&gt;&#xD;&#xA;&#xD;&#xA;  &lt;log4net debug=&quot;false&quot;&gt;&#xD;&#xA;    &lt;appender name=&quot;LogFileAppender&quot; type=&quot;log4net.Appender.RollingFileAppender&quot;&gt;&#xD;&#xA;      &lt;param name=&quot;File&quot; value=&quot;logs\\$LogFileName$.log&quot; /&gt;&#xD;&#xA;      &lt;param name=&quot;AppendToFile&quot; value=&quot;false&quot; /&gt;&#xD;&#xA;      &lt;param name=&quot;RollingStyle&quot; value=&quot;Size&quot; /&gt;&#xD;&#xA;      &lt;param name=&quot;MaxSizeRollBackups&quot; value=&quot;5&quot; /&gt;&#xD;&#xA;      &lt;param name=&quot;MaximumFileSize&quot; value=&quot;5000KB&quot; /&gt;&#xD;&#xA;      &lt;param name=&quot;StaticLogFileName&quot; value=&quot;true&quot; /&gt;&#xD;&#xA;&#xD;&#xA;      &lt;layout type=&quot;log4net.Layout.PatternLayout&quot;&gt;&#xD;&#xA;        &lt;param name=&quot;ConversionPattern&quot; value=&quot;%date [%3thread] %-5level %-40logger{3} - %message%newline&quot; /&gt;&#xD;&#xA;      &lt;/layout&gt;&#xD;&#xA;    &lt;/appender&gt;&#xD;&#xA;&#xD;&#xA;    &lt;appender name=&quot;ConsoleAppender&quot; type=&quot;log4net.Appender.ConsoleAppender&quot;&gt;&#xD;&#xA;      &lt;layout type=&quot;log4net.Layout.PatternLayout&quot;&gt;&#xD;&#xA;        &lt;param name=&quot;ConversionPattern&quot; value=&quot;%message%newline&quot; /&gt;&#xD;&#xA;      &lt;/layout&gt;&#xD;&#xA;    &lt;/appender&gt;&#xD;&#xA;&#xD;&#xA;    &lt;root&gt;&#xD;&#xA;      &lt;priority value=&quot;DEBUG&quot; /&gt;&#xD;&#xA;      &lt;appender-ref ref=&quot;LogFileAppender&quot; /&gt;&#xD;&#xA;    &lt;/root&gt;&#xD;&#xA;  &lt;/log4net&gt;&#xD;&#xA;" reformat="False" shortenQualifiedReferences="False">
    <Context>
      <FileNameContext mask="*.config" />
    </Context>
    <Categories />
    <Variables>
      <Variable name="LogFileName" expression="getOutputName()" initialRange="0" />
    </Variables>
    <CustomProperties />
  </Template>
</TemplatesExport>

1

পদ্ধতিটি ভার্চুয়াল করুন

ভার্চুয়াল কীওয়ার্ড যুক্ত করে। বিশেষত এনএইচবারনেট, ইএফ, বা অনুরূপ কাঠামো ব্যবহার করার সময় দরকারী যেখানে অলস লোডিং বা প্রক্সিং সক্ষম করতে পদ্ধতি এবং / অথবা বৈশিষ্ট্যগুলি ভার্চুয়াল হতে হবে।

শর্টকাট: v

এতে উপলব্ধ: সি # 2.0+ ফাইল যেখানে সদস্যের ঘোষণার অনুমতি রয়েছে

virtual $END$

এখানে কৌতুক ভার্চুয়াল পরে স্থান, যা উপরে দেখা কঠিন হতে পারে। প্রকৃত টেম্পলেটটি পুনরায় ফর্ম্যাট কোড সক্ষম করে "ভার্চুয়াল $ END।"। এটি আপনাকে নীচে সন্নিবেশ বিন্দুতে যেতে দেয় (দ্বারা চিহ্নিত |) এবং ভি টাইপ করুন:

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