Skip to content

[C#] Event with numerics (enum/int/byte) argument triggers NullReferenceException #843

@M1raclee

Description

@M1raclee

Description of the problem

When I try to call event with any numerics on client-side it triggers an exception:
System.NullReferenceException: Object reference not set to an instance of an object.

client-side code (main class, inherited of Resource. Also tried AsyncResource):

public enum TestEnumEvent
    {
        Test1,
        Test2,
        Test3
    }

    private event Action<TestEnumEvent> TestEvent;
    
    public override void OnStart()
    {
        Alt.Log("Starting resource...");
        TestEvent += EventCallback;
        
        TestEvent?.Invoke(TestEnumEvent.Test2);
        Alt.Log("Started ==> R");
    }
     void EventCallback(TestEnumEvent e)
    {
        Alt.Log($"##### Test event: {e}");
    }

Same problem with int:

private event Action<int> TestEvent;
    
    public override void OnStart()
    {
        Alt.Log("Starting resource...");
        TestEvent += EventCallback;
        
        TestEvent?.Invoke(123);
        Alt.Log("Started ==> R");
    }
    
    void EventCallback(int e)
    {
        Alt.Log($"##### Test event: {e}");
    }

float type just crash the client, with no extra exceptions in client logs

Null-ref triggers on this line:
TestEvent?.Invoke

If I change int/byte/enum to string or custom class - this code works fine, without exceptions

Reproduction steps

  • Create client-side C# resource
  • Create event Action with enum/int/byte param
  • Subscribe on event
  • Trigger event
  • Check console/log file to see null-exception

Expected behaviour

No exceptions for numberics types in Actions

Operating system

Windows 10

Version

Client version: 16.0.100 / 16.0.0-dev.239 / AltV.Net.Client 16.0.3
Server version: 16.0.100 / 16.0.0-dev.239 / AltV.Net 16.0.3

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions