pass inside inherit father c# keyword base

inside - c# pass parameters to base constructor



¿Cuál es realmente el propósito de la palabra clave "base" en c#? (8)

Por lo tanto, para la clase base utilizada para algunos métodos reutilizables comunes en cada página de mi aplicación ...

public class BaseClass:System.Web.UI.Page { public string GetRandomPasswordUsingGUID(int length) { string guidResult = System.Guid.NewGuid().ToString(); guidResult = guidResult.Replace("-", string.Empty); return guidResult.Substring(0, length); } }

Así que si quiero usar este método solo lo haría,

public partial class forms_age_group : BaseClass { protected void Page_Load(object sender, EventArgs e) { //i would just call it like this string pass = GetRandomPasswordUsingGUID(10); } }

Hace lo que quiero pero hay una palabra clave "Base" que trata con la clase base en c # ... Realmente quiero saber cuándo debo usar la palabra clave base en mi clase derivada ...

Cualquier buen ejemplo ...


El propósito real de la palabra clave "base" en c # es el siguiente: suponga que desea llamar solo al constructor parametrizado de la clase padre. Entonces, puede usar la base y pasar los parámetros. Consulte el siguiente ejemplo ...

Ejemplo -

class Clsparent { public Clsparent() { Console.WriteLine("This is Clsparent class constructor"); } public Clsparent(int a, int b) { Console.WriteLine("a value is=" + a + " , b value is=" + b); } } class Clschild : Clsparent { public Clschild() : base(3, 4) { Console.WriteLine("This is Clschild class constructor"); } } class Program { static void Main(string[] args) { Clschild objclschild = new Clschild(); Console.Read(); } }


En general, estamos usando la clase base para reutilizar la propiedad o los métodos en la clase secundaria de la clase base, por lo que no necesitamos repetir la misma propiedad y los métodos nuevamente en la clase secundaria.

Ahora, usamos la palabra clave base para llamar directamente a un constructor o método desde la clase base.

Ejemplo

public override void ParentMethod() { base.ParentMethod(); //call the parent method //Next code. }

2) Ejemplo

class child: parent { public child() : base(3, 4) //if you have parameterised constructor in base class { } }


La base se usa cuando reemplaza un método en una clase derivada pero solo desea agregar funcionalidad adicional a la funcionalidad original

Por ejemplo:

// Calling the Area base method: public override void Foo() { base.Foo(); //Executes the code in the base class RunAdditionalProcess(); //Executes additional code }


La palabra clave base se usa para referirse a la clase base cuando encadena constructores o cuando desea acceder a un miembro (método, propiedad, cualquier cosa) en la clase base que ha sido anulada u oculta en la clase actual. Por ejemplo,

class A { protected virtual void Foo() { Console.WriteLine("I''m A"); } } class B : A { protected override void Foo() { Console.WriteLine("I''m B"); } public void Bar() { Foo(); base.Foo(); } }

Con estas definiciones,

new B().Bar();

saldría

I''m B I''m A


La palabra clave base se utiliza para acceder a los miembros de la clase base que han sido anulados (u ocultados) por los miembros de la subclase.

Por ejemplo:

public class Foo { public virtual void Baz() { Console.WriteLine("Foo.Baz"); } } public class Bar : Foo { public override void Baz() { Console.WriteLine("Bar.Baz"); } public override void Test() { base.Baz(); Baz(); } }

Llamando Bar.Test luego daría resultado:

Foo.Baz; Bar.Baz;


Puede usar la base para completar los valores en el constructor de la clase base de un objeto.

Ejemplo:

public class Class1 { public int ID { get; set; } public string Name { get; set; } public DateTime Birthday { get; set; } public Class1(int id, string name, DateTime birthday) { ID = id; Name = name; Birthday = birthday; } } public class Class2 : Class1 { public string Building { get; set; } public int SpotNumber { get; set; } public Class2(string building, int spotNumber, int id, string name, DateTime birthday) : base(id, name, birthday) { Building = building; SpotNumber = spotNumber; } } public class Class3 { public Class3() { Class2 c = new Class2("Main", 2, 1090, "Mike Jones", DateTime.Today); } }


Si tiene el mismo miembro en clase y es súper clase, la única forma de llamar a miembro de súper clase es usar la palabra clave base :

protected override void OnRender(EventArgs e) { // do something base.OnRender(e); // just OnRender(e); will bring a StakOverFlowException // because it''s equal to this.OnRender(e); }


Utilizará la palabra clave base cuando override una funcionalidad, pero también desea que se produzca la funcionalidad anulada.

ejemplo:

public class Car { public virtual bool DetectHit() { detect if car bumped if bumped then activate airbag } } public class SmartCar : Car { public override bool DetectHit() { bool isHit = base.DetectHit(); if (isHit) { send sms and gps location to family and rescuer } // so the deriver of this smart car // can still get the hit detection information return isHit; } } public sealed class SafeCar : SmartCar { public override bool DetectHit() { bool isHit = base.DetectHit(); if (isHit) { stop the engine } return isHit; } }