<commit_before>#### class
*class* is a template for object instances in the program
```C#
using System;

namespace TestClasses
{
    class Person
    {
        public string Name { get; private set; }
        private int age;
        public int Age
        {
            get
            {
                return age;
            }
            set
            {
                if (value > 0)
                {
                    age = value;
                }
            }
        }
        public Person()
        {
            Name = "Unnamed";
            Age = 0;
        }
        public Person(string name, int age)
        {
            Name = name;
            Age = age;
        }
        public void AssignFakeName(string newName)
        {
            Name = newName;
        }
    }
    class ProgramToTestClasses
    {
        static void Main(string[] args)
        {
            Person p1 = new Person("Pesho", 0);
            p1.Age++;
            p1.AssignFakeName("Gosho");
            Console.WriteLine(p1.Name + " " + p1.Age);
        }
    }
}
```
- **public**:
The type or member can be accessed by any other code in the same assembly or another assembly that references it.
- **private**:
The type or member can be accessed only by code in the same class or struct.
- **protected**:
The type or member can be accessed only by code in the same class or struct, or in a class that is derived from that class.
- **internal**:
The type or member can be accessed by any code in the same assembly, but not from another assembly.
- **protected internal**:
The type or member can be accessed by any code in the assembly in which it is declared, or from within a derived class in another assembly. Access from another assembly must take place within a class declaration that derives from the class in which the protected internal element is declared, and it must take place through an instance of the derived class type.
<commit_msg>Update helpClassesAndObjects.md<commit_after>#### class
*class* is a template for object instances in the program
```C#
using System;

namespace TestClasses
{
    class Person
    {
        public string Name { get; private set; }
        private int age;
        public int Age
        {
            get
            {
                return age;
            }
            set
            {
                if (value > 0)
                {
                    age = value;
                }
            }
        }
        public Person()
        {
            Name = "Unnamed";
            Age = 0;
        }
        public Person(string name, int age)
        {
            Name = name;
            Age = age;
        }
        public void AssignFakeName(string newName)
        {
            Name = newName;
        }
    }
    class ProgramToTestClasses
    {
        static void Main(string[] args)
        {
            Person p1 = new Person("Pesho", 0);
            p1.Age++;
            p1.AssignFakeName("Gosho");
            Console.WriteLine(p1.Name + " " + p1.Age);
        }
    }
}
```
##### access modifiers
- **public**:
The type or member can be accessed by any other code in the same assembly or another assembly that references it.
- **private**:
The type or member can be accessed only by code in the same class or struct.
- **protected**:
The type or member can be accessed only by code in the same class or struct, or in a class that is derived from that class.
- **internal**:
The type or member can be accessed by any code in the same assembly, but not from another assembly.
- **protected internal**:
The type or member can be accessed by any code in the assembly in which it is declared, or from within a derived class in another assembly. Access from another assembly must take place within a class declaration that derives from the class in which the protected internal element is declared, and it must take place through an instance of the derived class type.

{'fraction_non_alphanumeric': 0.07260726072607261, 'fraction_numerical': 0.004061944656004062, 'mean_word_length': 1.7591036414565826, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1994697', 'n_tokens_mistral': 989, 'n_tokens_neox': 961, 'n_words': 459}