You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@arrow.apache.org by "Eric Erhardt (JIRA)" <ji...@apache.org> on 2019/06/10 20:44:00 UTC

[jira] [Created] (ARROW-5546) [C#] Remove IArrowArray and use Array base class.

Eric Erhardt created ARROW-5546:
-----------------------------------

             Summary: [C#] Remove IArrowArray and use Array base class.
                 Key: ARROW-5546
                 URL: https://issues.apache.org/jira/browse/ARROW-5546
             Project: Apache Arrow
          Issue Type: Improvement
          Components: C#
    Affects Versions: 0.13.0
            Reporter: Eric Erhardt


In .NET libraries, we have historically favored classes (abstract or otherwise) over interfaces. See [Choosing Between Classes and Interfaces|https://docs.microsoft.com/en-us/previous-versions/dotnet/netframework-4.0/ms229013(v%3dvs.100)]. The main reasoning is that you can add members to a class over time, but once you ship an interface, it can never be changed. You can only add new interfaces.

 In light of this, we should remove the IArrowArray interface, and instead just the base `Array` class as the abstraction for all Arrow Arrays.

As part of this, we should also consider renaming `Array` because it conflicts with the System.Array type. Instead we should consider naming it `ArrowArray` to make it unique from the very common System.Array type in .NET.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)