Curiosidades C# – Membros de tipos de dados

Numerical

Os tipos numéricos do .NET suporta as propriedades MaxValue e MinValue que fornecem informações sobre o intervalo que um determinado tipo pode armazenar.

tipos numéricos integrais: representam números inteiros. Todos os tipos numéricos integrais são tipos de valor.
tipos numéricos de ponto flutuante: representam números reais. Todos os tipos numéricos de ponto flutuante são tipos de valor.

Exemplo:

using System;
namespace MembersDataTypes
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("MaxValue of int: " + int.MaxValue);
            Console.WriteLine("MinValue of int: " + int.MinValue);
        }
    }
}
/*
Max of int: 2147483647
Min of int: -2147483648
*/

Além das propriedades MinValue / MaxValue, alguns tipos podem definir ainda mais membros úteis. Por exemplo, System.Double permite obter os valores para Épsilon e Infinito.

Exemplo:

using System;
namespace MembersDataTypes
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("MaxValue of double: " + double.MaxValue);
            Console.WriteLine("MinValue of double: " + double.MinValue);
            Console.WriteLine("Epsilon of double: " + double.Epsilon);
            Console.WriteLine("PositiveInfinity of double: " + double.PositiveInfinity);
            Console.WriteLine("NegativeInfinity of double: " + double.NegativeInfinity);
        }
    }
}
/*
MaxValue of double: 1,79769313486232E+308
MinValue of double: -1,79769313486232E+308
Epsilon of double: 4,94065645841247E-324
PositiveInfinity of double: 8
NegativeInfinity of double: -8
*/

Boolean

Tipos boolianos não vão suportar MaxValue ou MinValue, mas eles possuem outros métodos uteis, tais como TrueString e FalseString que retornam uma string True e False respectivamente.

Exemplo:

using System;
namespace MembersDataTypes
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("TrueString of boolean: " + bool.TrueString);
            Console.WriteLine("FalseString of boolean: " + bool.FalseString);
        }
    }
}
/*
TrueString of boolean: True
FalseString of boolean: False
*/

Char

O tipo System.Char fornece uma grande quantidade de funcionalidades além da capacidade de armazenar um único caractere. Usando os métodos estáticos do System.Char, você pode determinar se um determinado caractere é numérico, alfabético, um ponto de pontuação etc

Exemlo:

using System;
namespace MembersDataTypes
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("char.IsDigit('7') result:  "+ char.IsDigit('7'));
            Console.WriteLine("char.IsDigit('t') result:  "+ char.IsDigit('t'));
            Console.WriteLine("char.IsLetter('7') result:  "+ char.IsLetter('7'));
            Console.WriteLine("char.IsLetter('t') result:  "+ char.IsLetter('t'));
            Console.WriteLine("char.IsWhiteSpace('Hello World', 5) result:  "+ char.IsWhiteSpace("Hello World", 5));
            Console.WriteLine("char.IsWhiteSpace('Hello World', 6) result:  "+ char.IsWhiteSpace("Hello World", 6));
            Console.WriteLine("char.IsPunctuation('?') result:  "+ char.IsPunctuation('?'));
            Console.WriteLine("char.IsPunctuation('3') result:  "+ char.IsPunctuation('3'));
        }
    }
}
/*
char.IsDigit('7') result:  True
char.IsDigit('t') result:  False
char.IsLetter('7') result:  False
char.IsLetter('t') result:  True
char.IsWhiteSpace('Hello World', 5) result:  True
char.IsWhiteSpace('Hello World', 6) result:  False
char.IsPunctuation('?') result:  True
char.IsPunctuation('3') result:  False
*/

Exemplo completo para referência

using System;
namespace MembersDataTypes
{
    class Program
    {
        static void Main(string[] args)
        {
            NumericalIntSamples();
            Console.WriteLine();
            NumericalDoubleSamples();
            Console.WriteLine();
            BoolSamples();
            Console.WriteLine();
            CharSamples();
        }

        public static void NumericalIntSamples()
        {
            Console.WriteLine("MaxValue of int: " + int.MaxValue);
            Console.WriteLine("MinValue of int: " + int.MinValue);
        }

        public static void NumericalDoubleSamples()
        {
            Console.WriteLine("MaxValue of double: " + double.MaxValue);
            Console.WriteLine("MinValue of double: " + double.MinValue);
            Console.WriteLine("Epsilon of double: " + double.Epsilon);
            Console.WriteLine("PositiveInfinity of double: " + double.PositiveInfinity);
            Console.WriteLine("NegativeInfinity of double: " + double.NegativeInfinity);
        }

        public static void BoolSamples()
        {
            Console.WriteLine("TrueString of boolean: " + bool.TrueString);
            Console.WriteLine("FalseString of boolean: " + bool.FalseString);
        }

        public static void CharSamples()
        {
            Console.WriteLine("char.IsDigit('7') result:  " + char.IsDigit('7'));
            Console.WriteLine("char.IsDigit('t') result:  " + char.IsDigit('t'));
            Console.WriteLine("char.IsLetter('7') result:  " + char.IsLetter('7'));
            Console.WriteLine("char.IsLetter('t') result:  " + char.IsLetter('t'));
            Console.WriteLine("char.IsWhiteSpace('Hello World', 5) result:  " + char.IsWhiteSpace("Hello World", 5));
            Console.WriteLine("char.IsWhiteSpace('Hello World', 6) result:  " + char.IsWhiteSpace("Hello World", 6));
            Console.WriteLine("char.IsPunctuation('?') result:  " + char.IsPunctuation('?'));
            Console.WriteLine("char.IsPunctuation('3') result:  " + char.IsPunctuation('3'));
        }
    }
}
/*
MaxValue of int: 2147483647
MinValue of int: -2147483648

MaxValue of double: 1,79769313486232E+308
MinValue of double: -1,79769313486232E+308
Epsilon of double: 4,94065645841247E-324
PositiveInfinity of double: 8
NegativeInfinity of double: -8

TrueString of boolean: True
FalseString of boolean: False

char.IsDigit('7') result:  True
char.IsDigit('t') result:  False
char.IsLetter('7') result:  False
char.IsLetter('t') result:  True
char.IsWhiteSpace('Hello World', 5) result:  True
char.IsWhiteSpace('Hello World', 6) result:  False
char.IsPunctuation('?') result:  True
char.IsPunctuation('3') result:  False
*/

Qualquer dúvida ou dicas, entre em contato: leandrolt@gmail.com

Principais referências

– Livro: Pro C# 7: With .NET and .NET Core – Andrew Troelsen
– https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/builtin-types/integral-numeric-types
– https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/builtin-types/floating-point-numeric-types

Leave a Reply

Your email address will not be published. Required fields are marked *