Skip to content

Example.UncomparableTimestampedStruct

IzayoiJiichan edited this page Feb 1, 2025 · 1 revision

Examples

using Izayoi.Data.TimestampedObjects;
using System;

public class Example()
{
    public void Method1()
    {
        UncomparableTimestampedStruct<UncomparableSample2Struct> uts1 = new(new(1, 2));

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

        long utcNow = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();

        UncomparableTimestampedStruct<UncomparableSample2Struct> uts2 = new(utcNow, new(1, 2));

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

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

        UncomparableTimestampedStruct<UncomparableSample2Struct> uts1 = new(utcNow, new(1, 1));
        UncomparableTimestampedStruct<UncomparableSample2Struct> uts2 = new(utcNow, new(1, 1));

        if (uts1 == uts2)
        {
            // true (uts1.Value == uts2.Value)
        }
    }

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

        UncomparableTimestampedStruct<UncomparableSample2Struct> uts1 = new(utcNow1, new(1, 1));

        long utcNow2 = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();

        UncomparableTimestampedStruct<UncomparableSample2Struct> uts2 = new(utcNow2, new(1, 1));

        if (uts1 == uts2)
        {
            // false (uts1.Timestamp != uts2.Timestamp)
        }
    }

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

        UncomparableTimestampedStruct<UncomparableSample2Struct> uts11 = new(utcNow, new(1, 1));
        UncomparableTimestampedStruct<UncomparableSample2Struct> uts12 = new(utcNow, new(1, 2));

        if (uts11 == uts12)
        {
            // false (uts11.Value != uts12.Value)
        }
    }
}

public readonly struct UncomparableSample2Struct
{
    private readonly int value1;

    private readonly int value2;

    public UncomparableSample2Struct(int value1, int value2)
    {
        this.value1 = value1;
        this.value2 = value2;
    }

    public readonly int Value1 => value1;

    public readonly int Value2 => value2;
}
Clone this wiki locally