Storing components in static classes viable?Are static class variables possible?When to use static classes in C#Can I add extension methods to an existing static class?Difference between static class and singleton pattern?What does “static” mean in C?Static readonly vs constStatic variables in JavaScriptStatic constant string (class member)Why are static classes considered “classes” and “reference types”?Why are static variables considered evil?

What defines a dissertation?

How will losing mobility of one hand affect my career as a programmer?

Is there any easy technique written in Bhagavad GITA to control lust?

Why does John Bercow say “unlock” after reading out the results of a vote?

Applicability of Single Responsibility Principle

Implement the Thanos sorting algorithm

Modify casing of marked letters

What's the purpose of "true" in bash "if sudo true; then"

Is there any reason not to eat food that's been dropped on the surface of the moon?

apt-get update is failing in debian

Why "be dealt cards" rather than "be dealing cards"?

is this a spam?

What is the intuitive meaning of having a linear relationship between the logs of two variables?

Everything Bob says is false. How does he get people to trust him?

Are there any comparative studies done between Ashtavakra Gita and Buddhim?

What will be the benefits of Brexit?

What is the oldest known work of fiction?

Do I need a multiple entry visa for a trip UK -> Sweden -> UK?

Can I Retrieve Email Addresses from BCC?

Increase performance creating Mandelbrot set in python

Why is delta-v is the most useful quantity for planning space travel?

Understanding "audieritis" in Psalm 94

Why Were Madagascar and New Zealand Discovered So Late?

The plural of 'stomach"



Storing components in static classes viable?


Are static class variables possible?When to use static classes in C#Can I add extension methods to an existing static class?Difference between static class and singleton pattern?What does “static” mean in C?Static readonly vs constStatic variables in JavaScriptStatic constant string (class member)Why are static classes considered “classes” and “reference types”?Why are static variables considered evil?













0















I´m struggling with a custom implementation of an ECS in C#.



I store my components in static classes like this:



internal static class ComponentStorage<T> where T : struct, IComponent

private static readonly T[] components = new T[capacity];
public static ref T Get(int index)

return ref components[index];

public static void Add(T component, int index)

components[index] = component;




I do this for two main reasons:



  • it allows me to store my components - as they are - in contigous struct arrays

  • i can easily obtain the components without boxing/unboxing

I manage the components inside a manager class with tables etc.



My implementation is working fine so far but im nervous building upon this method.



  • Is there any anything im missing like hidden boxing because of the generic statics? performance tests went as expected but i havent implemented any SystemManager kind of thing yet because its quite tricky to do so i dont want start with that if im wrong all along.

i couldnt find a proper answer for the static-generic-boxing question and i havent seen any ecs utilizing this yet.










share|improve this question









New contributor




user11220832 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.















  • 1





    I do this all the time without issue. You shouldn't have any issues with boxing because the generic class is always treating the values at the specified type.

    – Grax
    Mar 21 at 19:32











  • For the record, I'm not doing this within ECS, but I am using it in multiple C# applications.

    – Grax
    Mar 21 at 19:33















0















I´m struggling with a custom implementation of an ECS in C#.



I store my components in static classes like this:



internal static class ComponentStorage<T> where T : struct, IComponent

private static readonly T[] components = new T[capacity];
public static ref T Get(int index)

return ref components[index];

public static void Add(T component, int index)

components[index] = component;




I do this for two main reasons:



  • it allows me to store my components - as they are - in contigous struct arrays

  • i can easily obtain the components without boxing/unboxing

I manage the components inside a manager class with tables etc.



My implementation is working fine so far but im nervous building upon this method.



  • Is there any anything im missing like hidden boxing because of the generic statics? performance tests went as expected but i havent implemented any SystemManager kind of thing yet because its quite tricky to do so i dont want start with that if im wrong all along.

i couldnt find a proper answer for the static-generic-boxing question and i havent seen any ecs utilizing this yet.










share|improve this question









New contributor




user11220832 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.















  • 1





    I do this all the time without issue. You shouldn't have any issues with boxing because the generic class is always treating the values at the specified type.

    – Grax
    Mar 21 at 19:32











  • For the record, I'm not doing this within ECS, but I am using it in multiple C# applications.

    – Grax
    Mar 21 at 19:33













0












0








0








I´m struggling with a custom implementation of an ECS in C#.



I store my components in static classes like this:



internal static class ComponentStorage<T> where T : struct, IComponent

private static readonly T[] components = new T[capacity];
public static ref T Get(int index)

return ref components[index];

public static void Add(T component, int index)

components[index] = component;




I do this for two main reasons:



  • it allows me to store my components - as they are - in contigous struct arrays

  • i can easily obtain the components without boxing/unboxing

I manage the components inside a manager class with tables etc.



My implementation is working fine so far but im nervous building upon this method.



  • Is there any anything im missing like hidden boxing because of the generic statics? performance tests went as expected but i havent implemented any SystemManager kind of thing yet because its quite tricky to do so i dont want start with that if im wrong all along.

i couldnt find a proper answer for the static-generic-boxing question and i havent seen any ecs utilizing this yet.










share|improve this question









New contributor




user11220832 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












I´m struggling with a custom implementation of an ECS in C#.



I store my components in static classes like this:



internal static class ComponentStorage<T> where T : struct, IComponent

private static readonly T[] components = new T[capacity];
public static ref T Get(int index)

return ref components[index];

public static void Add(T component, int index)

components[index] = component;




I do this for two main reasons:



  • it allows me to store my components - as they are - in contigous struct arrays

  • i can easily obtain the components without boxing/unboxing

I manage the components inside a manager class with tables etc.



My implementation is working fine so far but im nervous building upon this method.



  • Is there any anything im missing like hidden boxing because of the generic statics? performance tests went as expected but i havent implemented any SystemManager kind of thing yet because its quite tricky to do so i dont want start with that if im wrong all along.

i couldnt find a proper answer for the static-generic-boxing question and i havent seen any ecs utilizing this yet.







c# generics static amazon-ecs entity-component-system






share|improve this question









New contributor




user11220832 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




user11220832 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited Mar 21 at 15:34









Uwe Keim

27.7k32134215




27.7k32134215






New contributor




user11220832 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked Mar 21 at 15:26









user11220832user11220832

664




664




New contributor




user11220832 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





user11220832 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






user11220832 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







  • 1





    I do this all the time without issue. You shouldn't have any issues with boxing because the generic class is always treating the values at the specified type.

    – Grax
    Mar 21 at 19:32











  • For the record, I'm not doing this within ECS, but I am using it in multiple C# applications.

    – Grax
    Mar 21 at 19:33












  • 1





    I do this all the time without issue. You shouldn't have any issues with boxing because the generic class is always treating the values at the specified type.

    – Grax
    Mar 21 at 19:32











  • For the record, I'm not doing this within ECS, but I am using it in multiple C# applications.

    – Grax
    Mar 21 at 19:33







1




1





I do this all the time without issue. You shouldn't have any issues with boxing because the generic class is always treating the values at the specified type.

– Grax
Mar 21 at 19:32





I do this all the time without issue. You shouldn't have any issues with boxing because the generic class is always treating the values at the specified type.

– Grax
Mar 21 at 19:32













For the record, I'm not doing this within ECS, but I am using it in multiple C# applications.

– Grax
Mar 21 at 19:33





For the record, I'm not doing this within ECS, but I am using it in multiple C# applications.

– Grax
Mar 21 at 19:33












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);






user11220832 is a new contributor. Be nice, and check out our Code of Conduct.









draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55283903%2fstoring-components-in-static-classes-viable%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes








user11220832 is a new contributor. Be nice, and check out our Code of Conduct.









draft saved

draft discarded


















user11220832 is a new contributor. Be nice, and check out our Code of Conduct.












user11220832 is a new contributor. Be nice, and check out our Code of Conduct.











user11220832 is a new contributor. Be nice, and check out our Code of Conduct.














Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55283903%2fstoring-components-in-static-classes-viable%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Kamusi Yaliyomo Aina za kamusi | Muundo wa kamusi | Faida za kamusi | Dhima ya picha katika kamusi | Marejeo | Tazama pia | Viungo vya nje | UrambazajiKuhusu kamusiGo-SwahiliWiki-KamusiKamusi ya Kiswahili na Kiingerezakuihariri na kuongeza habari

SQL error code 1064 with creating Laravel foreign keysForeign key constraints: When to use ON UPDATE and ON DELETEDropping column with foreign key Laravel error: General error: 1025 Error on renameLaravel SQL Can't create tableLaravel Migration foreign key errorLaravel php artisan migrate:refresh giving a syntax errorSQLSTATE[42S01]: Base table or view already exists or Base table or view already exists: 1050 Tableerror in migrating laravel file to xampp serverSyntax error or access violation: 1064:syntax to use near 'unsigned not null, modelName varchar(191) not null, title varchar(191) not nLaravel cannot create new table field in mysqlLaravel 5.7:Last migration creates table but is not registered in the migration table

은진 송씨 목차 역사 본관 분파 인물 조선 왕실과의 인척 관계 집성촌 항렬자 인구 같이 보기 각주 둘러보기 메뉴은진 송씨세종실록 149권, 지리지 충청도 공주목 은진현