سؤال

لقد بدأت في قراءة Tutorial Nerddinner من الصفر. أثناء قراءة تطبيق القراءة والترميز ، توصلت إلى جزء حول بعض أساليب المساعد وكان هناك مثال واحد على بعض الفصول (AddRuleViolations) ولكن لم يكن هناك أي تفسير عند إضافة هذه الفئة. لذلك تخطيت هذا واحد واستمرت مع البرنامج التعليمي دون استخدام هذا الفصل في وقت لاحق في التعليمات البرمجية.
الآن ، أنا عالق في "إضافة صفحة ملاحة واجهة المستخدم"القسم الذي يتم فيه استخدام طريقة المساعد هذه مرة أخرى. لذا ، قمت بتنزيل الكود النهائي الخاص بهم وأرى أن هناك مجلد" مساعدون "وهذه الفصول التي أحتاج إلى تنفيذها في الكود الخاص بي. الشيء هو أنني لا أريد أن أفعل نسخ/لصق وأريد أن أفهم كيفية إضافة أساليب المساعد هذه.
على وجه التحديد ، أريد إضافة هذا الفصل كأسلوب مساعد:

    public class PaginatedList<T> : List<T>
    {
        public int PageIndex { get; private set; }
        public int PageSize { get; private set; }
        public int TotalCount { get; private set; }
        public int TotalPages { get; private set; }
        public PaginatedList(IQueryable<T> source, int pageIndex, int pageSize)
        {
            PageIndex = pageIndex;
            PageSize = pageSize;
            TotalCount = source.Count();

            TotalPages = (int)Math.Ceiling(TotalCount / (double)PageSize);
            this.AddRange(source.Skip(PageIndex * PageSize).Take(PageSize));
        }
        public bool HasPreviousPage
        {
            get
            {
                return (PageIndex > 0);
            }
        }
        public bool HasNextPage
        {
            get
            {
                return (PageIndex + 1 < TotalPages);
            }
        }
    }

المشكلة هي أنه ليس لدي أي خبرة مع .NET أو C# ولست على دراية بتطوير التطبيقات في VS. (أعرف فقط بعض أساسيات C#)

شكرًا،
الدقاق

هل كانت مفيدة؟

المحلول

أساليب المساعد هي طريقة .NET لتصحيح القرد!

لنفترض أن لديك فئة فو التي كتبها شخص ما في مكان ما ولا يمكنك تغييره. الآن تريد:

var foo = new Foo();
var something = foo.NotThere();

وظيفة notthere ليست في فو ، ماذا تفعل ، ماذا تفعل؟ لماذا لا طريقة مساعد:

static class FooHelperThingy{
  static string NotThere(this Foo foo){
    return "Bar!!!";
  }
}

وفويلا يمكنك الاتصال foo.NotThere(). (وهو يعمل إذا كان لديك استخدام يشير إلى مساحة الاسم حيث تعيش طريقة المساعد.)

المعلمة التي تحمل علامة هذا سيكون الكائن الذي تصحيحه القرد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top