tag tabla simple propiedad intervalos frecuencias frecuencia estadistica ejemplos ejemplo distribucion con absoluta c# .net asp.net vb.net

c# - propiedad - tabla de frecuencia simple



¿Hay algún límite en la cantidad de clases que un espacio de nombres puede tener en.net? (8)

¿Hay algún límite en la cantidad de clases que un espacio de nombres puede tener en .net? Además, ¿cuál es el número recomendado de clases que debería haber en un espacio de nombres?


Bueno, un nombre de clase tiene que caber en una cadena. Solo hay algunos caracteres válidos, por lo que se trata de una conjetura muy aproximada, como 850000, porque no me molestaría obtener un recuento de los caracteres en diferentes clases en el UCS, esto sería - en un espacio de nombres de un nombre de longitud de carácter - dar un límite de 850000x10737418213! x10737418213 !. Sin embargo, VB.NET solo puede funcionar con nombres de 1023 caracteres, por lo que se limitaría a 850000x1021! X1021! y C # solo puede manejar nombres de 511 caracteres, ¡así que 85000x509! x509!

No tengo un framework .NET4.0, así que las matemáticas numéricas necesarias para trabajar con esas ecuaciones están demasiado complicadas como para molestarlas ahora;)

El 85000 está probablemente bien, pero los caracteres ideográficos están generalmente en la clase Lo, lo cual está permitido en los nombres de las clases, y completan una gran porción de los puntos de código asignados. En cualquier caso, este sea cual sea el valor real aumentará con las versiones posteriores de Unicode.

Todo tipo de límites técnicos e incluso físicos serán atacados antes de este punto de todos modos, pero mucho, mucho antes de eso, llegamos al límite determinado. El espacio de nombres no existe para el compilador, existe para los humanos. El compilador podría funcionar igual de bien (de hecho, quizás mejor) si no hubiera espacios de nombres y los programadores simplemente garantizaran nunca volver a usar los nombres. Existen espacios de nombres para que los seres humanos tengan grupos de tipos de tamaño razonable (de tamaño de aprendizaje) con los que lidiar.


Lo probé: simplemente construí un ensamblaje que contiene 1,000,000 de tipos sin ningún problema. Sin embargo, en 5.000.000 el compilador de C # se quedó sin memoria :-).


Por lo que sé, no existe tal límite, de la misma manera que no hay límite en la cantidad de clases que puede tener.

El espacio de nombres es simplemente parte del nombre completo de la clase.


Puede haber o no un límite físico, pero debes alcanzar un límite lógico antes de llegar allí.

En cuanto a "cuántos debería haber", la respuesta, como la mayoría en .Net, es "depende". No hay una respuesta clara a eso; básicamente, desea dividir lógicamente su solución en proyectos relacionados por funcionalidad o propósito, lo que tenga sentido en su caso particular y para sus gustos particulares.


Siempre puede crear un nuevo ensamblaje con más clases en cualquier espacio de nombres dado. Ningún compilador puede aplicar prácticamente un límite global.


Sin límite. El número de tipos de feasabe depende del dominio del problema. Si una cierta "carpeta" como muchos tipos tiene alguna libertad. En mi aplicación, tengo un espacio de nombres para mensajes en un protocolo determinado y tengo alrededor de 200 tipos de mensajes diferentes.


No hay un número máximo especificado de clases "por espacio de nombres": un espacio de nombres es realmente solo una parte del nombre completo del Tipo, no una entidad lógica en el CLR

El número recomendado es el que tiene sentido: use espacios de nombres para agrupar clases relacionadas lógicamente.

Estoy seguro de que si tiene suficientes tipos puede ejecutar el compilador o el tiempo de ejecución sin memoria, pero eso es un límite físico, no una especificación, y probablemente no importe si están en el mismo espacio de nombres o no.

Tenga en cuenta que, como señala Steven, también puede tener el mismo espacio de nombres presente en múltiples conjuntos también.


Estoy seguro de que esto será enterrado, pero hay una cantidad MUY finita de clases que puedes tener en un dll. Esta fuente dice que

Si una clase se identifica en la tabla de metadatos utilizando un token de metadatos y el token de metadatos es un número de cuatro bytes, esto significa que el número de clases que un ensamblaje puede contener es menor que el mayor número en 3 bytes (el primer byte es una conexión al tipo de tabla de metadatos). El número más grande en 3 bytes es 2 ^ 24-1 o 16777215.

Por lo tanto, la cantidad máxima de clases (y miembros de clases) que puede contener un ensamblado .NET es 16777215.