Maison >développement back-end >Tutoriel C#.Net >Compilation des connaissances de base en C# : classes et structures C# (3)

Compilation des connaissances de base en C# : classes et structures C# (3)

黄舟
黄舟original
2017-02-10 15:25:031602parcourir

1. Quelles sont les caractéristiques fonctionnelles des classes statiques et des membres statiques ? Implémenter le code ?
Les classes statiques et les membres statiques font référence aux classes ou membres définis à l'aide du mot-clé static Tous les membres d'une classe statique doivent être des membres statiques, sinon une erreur sera signalée. L’une des caractéristiques des classes et des membres statiques est qu’ils sont uniques. S'il s'agit d'une classe statique, elle ne peut pas être instanciée, et il n'y en a qu'une seule chargée en mémoire ; s'il s'agit d'une variable ou d'une méthode statique, si cette classe peut être instanciée, peu importe le nombre de fois où elle est instanciée, il y en aura toujours. être une seule variable ou méthode statique.
est le suivant :
(1), membres statiques

    public class StatTicMember
    {
        public static string testA = string.Empty;
    }
    
    class Program
    {
        static void Main(string[] args)
        {
            //StaticConstruct strc = new StaticConstruct();

            //StaticConstruct strcValue = new StaticConstruct(string.Empty);

            StatTicMember sMember1 = new StatTicMember();

            StatTicMember.testA = @"静态成员";

            Console.WriteLine(StatTicMember.testA);

            StatTicMember sMember2 = new StatTicMember();

            Console.WriteLine(StatTicMember.testA);

            Console.ReadLine();
        }
    }

Résultat :

Caractéristiques des membres statiques :
Doit réussir. nom de classe Les références ne peuvent pas être référencées par les objets d'une classe ;
b Peu importe le nombre de fois qu'une classe est instanciée, il n'y a que la même zone dans la mémoire
c. référencés dans une méthode statique, ils devront également être statiques, comme

    public class StatTicMember
    {
        public static string testA = string.Empty;

        public  string testB = string.Empty;

        public static void Method()
        {
            testA = @"my";//正确

            //testB = @"my";//错误
        }
    }

(2), classe statique

  public static class StaticClass
    {
        public static string testA = string.Empty;

        public static void StaticMethod()
        {
            Console.WriteLine(@"静态方法");
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            StaticClass.testA = @"静态类";

            Console.WriteLine(StaticClass.testA);

            StaticClass.StaticMethod();

            Console.ReadLine();
        }
    }

Résultat :

Caractéristiques de la classe statique :
a. Les membres doivent également être statiques
b. Ils ne peuvent pas être instanciés : ils utilisent directement le nom de la classe ; signifie que cette classe ne peut pas être utilisée comme classe de base et ne peut pas être une classe abstraite, c'est-à-dire qu'elle ne peut pas être dérivée )
d.
Lors de l'utilisation de classes et de membres statiques, les classes statiques ne peuvent pas être utilisées de manière intensive, car une fois chargées, il y a une zone dans la mémoire, et elle sera là, que vous l'utilisiez ou non. prend de la mémoire. Il peut être utilisé dans les situations suivantes :
a. Variable globale, une variable utilisée dans tout le projet, et la valeur ne peut pas être modifiée facilement, même si tous les modules sont modifiés, ils doivent répondre.
b. Méthodes qui n'opèrent pas sur les données d'instance et ne sont pas associées à des classes spécifiques dans le code, comme certaines méthodes de la classe Math.

2. Sceller les fonctionnalités fonctionnelles ? Implémenter le code ? Pourquoi utiliser des classes scellées ?
Une classe scellée fait référence à une classe modifiée avec le mot-clé scellé. Son but est d'empêcher la dérivation, c'est-à-dire que cette classe ne peut pas être héritée.
Caractéristiques :
ne peut pas être utilisé comme classe de base, ne peut pas être abstrait et les appels aux classes scellées sont plus rapides.

    public sealed class SealedClass
    {
        public  string testA = string.Empty;
    }

3. Qu'est-ce qu'un cours abstrait ? Caractéristiques? Implémenter le code ? Quelle est la différence entre l’interface et la classe abstraite ?
La classe abstraite fait référence à une classe modifiée avec le mot-clé abstract. Sa fonction est de dériver plusieurs classes et de partager les méthodes et propriétés publiques de la classe de base.

   public abstract class AbstractClass
    {
        public abstract void CommonMethod();
    }

    public class ChildClass1 : AbstractClass
    {

        public override void CommonMethod()
        {
            Console.WriteLine(@"实现公用方法1");
        }
    }

    public class ChildClass2 : AbstractClass
    {

        public override void CommonMethod()
        {
            Console.WriteLine(@"实现公用方法2");
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            ChildClass1 chc1 = new ChildClass1();

            chc1.CommonMethod();

            ChildClass2 chc2 = new ChildClass2();

            chc2.CommonMethod();

            Console.ReadLine();
        }
    }
Résultat :

La différence entre les classes abstraites et les interfaces :
a. Les classes sont des abstractions d'objets. Les classes abstraites peuvent être comprises comme des classes As. un objet, la classe dans laquelle on fait abstraction est appelée une classe abstraite. L'interface n'est qu'une spécification ou une régulation de comportement. L'interface personnalisée de Microsoft est toujours suivie d'un champ capable, ce qui prouve qu'elle exprime une classe "Je peux faire..." Les classes abstraites sont plus définies dans une série d'entre étroitement liées. classes, la plupart des interfaces sont vaguement liées mais toutes implémentent une certaine fonction ;
b. L'interface n'a fondamentalement aucune caractéristique spécifique d'héritage, elle promet seulement des méthodes qui peuvent être appelées
c , Une classe peut en implémenter plusieurs ; interfaces à la fois, mais ne peuvent étendre qu'une seule classe parent ;
d. Les interfaces peuvent être utilisées pour prendre en charge les rappels, mais l'héritage n'a pas cette fonctionnalité ;
e                  f. Les méthodes spécifiques implémentées par les classes abstraites sont virtuelles par défaut, mais les méthodes d'interface de la classe qui implémente l'interface sont non virtuelles par défaut, bien sûr, elles peuvent également être déclarées comme virtuelles. Semblable aux classes, une classe abstraite doit également ; fournit ses propres implémentations pour tous les membres des interfaces répertoriées dans la liste des classes de base de la classe. Cependant, les classes abstraites sont autorisées à mapper les méthodes d'interface aux méthodes abstraites ;
h. Les classes abstraites implémentent un principe en oop, séparant le mutable de l'immuable. Les classes et interfaces abstraites sont définies comme immuables, et les classes mutables sont transmises aux sous-classes pour implémentation
i. Une bonne définition d'interface doit avoir des fonctionnalités spécifiques, et non multifonctions, sinon l'interface deviendra polluée. Si une classe n'implémente qu'une seule fonction de cette interface et doit implémenter d'autres méthodes dans l'interface, cela s'appelle une pollution d'interface
j. Si la classe abstraite implémente l'interface, les méthodes de l'interface peuvent être mappées vers l'abstrait ; class En tant que méthode abstraite dans l'interface, elle n'a pas besoin d'être implémentée, mais les méthodes de l'interface sont implémentées dans la sous-classe de la classe abstraite.

Ce qui précède est le contenu ci-dessus. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) ! Pour plus de contenu connexe, veuillez prêter attention au site Web PHP chinois (www.php.cn) !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn