Skip to content

Example.UncomparableTimestampedClass

IzayoiJiichan edited this page Feb 1, 2025 · 1 revision

Examples

using Izayoi.Data.TimestampedObjects;
using System;

public class Example()
{
    public void Method1()
    {
        UncomparableTimestampedClass<UncomparableSample2Class> utc0 = new();

        // uts0.Timestamp: 0
        // uts0.Value: null

        UncomparableTimestampedClass<UncomparableSample2Class> utc1 = new(new(1, 2));

        // utc1.Timestamp: (1234567890)
        // utc1.Value.Value1: 1
        // utc1.Value.Value2: 2

        long utcNow = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();

        UncomparableTimestampedClass<UncomparableSample2Class> utc2 = new(utcNow, new(1, 2));

        // utc2.Timestamp: (utcNow)
        // utc2.Value.Value1: 1
        // utc2.Value.Value2: 2
    }

    public void Method2()
    {
        UncomparableSample2Class sameClass = new(1, 2);

        long utcNow = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();

        UncomparableTimestampedClass<UncomparableSample2Class> utc1 = new(utcNow, sameClass);
        UncomparableTimestampedClass<UncomparableSample2Class> utc2 = new(utcNow, sameClass);

        if (utc1 == utc2)
        {
            // true
        }
    }

    public void Method3()
    {
        long utcNow = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();

        UncomparableSample2Class class1 = new(1, 2);
        UncomparableSample2Class class2 = new(1, 2);

        UncomparableTimestampedClass<UncomparableSample2Class> utc1 = new(utcNow, class1);
        UncomparableTimestampedClass<UncomparableSample2Class> utc2 = new(utcNow, class2);

        if (utc1 == utc2)
        {
            // false (class1 != class2)
        }
    }

    public void Method4()
    {
        UncomparableSample2Class sameClass = new(1, 2);

        long utcNow1 = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();

        UncomparableTimestampedClass<int> utc1 = new(utcNow1, sameClass);

        long utcNow2 = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();

        UncomparableTimestampedClass<int> utc2 = new(utcNow2, sameClass);

        if (utc1 == utc2)
        {
            // false (utc1.Timestamp != utc2.Timestamp)
        }
    }
}

public readonly struct ComparableSample2Class
{
    public ComparableSample2Class(int value1, int value2)
    {
        Value1 = value1;
        Value2 = value2;
    }

    public int Value1 { get; set; }
    public int Value2 { get; set; }
}
Clone this wiki locally