using System;

namespace Sasa.QualityTools.DrFx.Tests.Violation.CSharp.Microsoft.Naming
{
    // この名前空間は CA1726:Namespace に違反しています。
    namespace ComPlus
    {
        public class Rule1726
        {
        }
    }

    // この名前空間は CA1726:Type に違反しています。
    public class Writeable
    {
    }

    // この名前空間は CA1726:TypeTypeParameter に違反しています。
    public class Rule1726A<TSignOff>
    {
        public string Value { get; set; }

        // この名前空間は CA1726:Member に違反しています。
        // この名前空間は CA1726:MemberParameter に違反しています。
        // この名前空間は CA1726:MemberTypeParameter に違反しています。
        public void LogIn<TLogOut>(TLogOut signOn)
        {
            Console.WriteLine(Value);
            Console.WriteLine(signOn);
        }
    }

    // このデリゲートは CA1726:DelegateParameter に違反しています。
    public delegate void Rule1726B(string indices);

    // この名前空間は CA1726:NamespaceNoAlternate に違反しています。
    namespace Flag
    {
        public class Rule1726
        {
        }
    }

    // この名前空間は CA1726:TypeNoAlternate に違反しています。
    public class FlagClass
    {
    }

    // この名前空間は CA1726:TypeTypeParameterNoAlternate に違反しています。
    public class Rule1726C<TFlag>
    {
        public string Value { get; set; }

        // この名前空間は CA1726:MemberNoAlternate に違反しています。
        // この名前空間は CA1726:MemberParameterNoAlternate に違反しています。
        // この名前空間は CA1726:MemberTypeParameterNoAlternate に違反しています。
        public void WriteFlag<TFlags>(TFlags flag)
        {
            Console.WriteLine(Value);
            Console.WriteLine(flag);
        }
    }

    // このデリゲートは CA1726:DelegateParameterNoAlternate に違反しています。
    public delegate void Rule1726D(string flag);
}
