ES CSharp Keyword public - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
C#: public
Hace que un tipo o miembro sea accesible externamente si sus tipos externos también son accesibles.
Ejemplo sencillo (Example.cs)
Guarde este ejemplo por separado como Example.cs. Ejecútelo independientemente de los demás ejemplos de esta página.
Example.cs:
// PROJECT-EXAMPLE
System.Console.WriteLine(new Player().Name);
public class Player { public string Name => "Archer"; }
Resultado:
Archer
Sintaxis
public class Name { public void Run() { ... } }
Ejemplo 1: forma básica
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.IO;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
public static class Program
{
public static async Task Main(string[] args)
{
Entity entity = new Player("Archer");
Console.WriteLine(entity.Describe());
Console.WriteLine(entity.Code);
}
}
public interface ILabel { string Label { get; } }
public abstract class Entity : ILabel
{
private readonly string name;
protected Entity(string name) { this.name = name; }
protected string Name => name;
internal int Code { get; set; } = 7;
public virtual string Label => Name;
public abstract string Describe();
}
public sealed class Player : Entity
{
public Player(string name) : base(name) { }
public override string Label => "Player: " + base.Label;
public override string Describe() => Label;
}
Ejemplo 2: otra forma práctica
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.IO;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
public static class Program
{
public static async Task Main(string[] args)
{
NamedCounter value = new();
Console.WriteLine(value.Describe());
Counter parent = value;
Console.WriteLine(parent.Describe());
}
}
public interface ICounter { int Count { get; } }
public class Counter : ICounter
{
private int count;
public Counter() : this(1) { }
public Counter(int count) { this.count = count; }
public int Count => count;
protected internal virtual string Format() => count.ToString();
public string Describe() => Format();
}
public sealed class NamedCounter : Counter
{
public NamedCounter() : base(4) { }
public new string Describe() => "Named: " + base.Describe();
protected internal override string Format() => "Count=" + Count;
}
Fuente oficial: Microsoft Aprender.