<?xml version="1.0" encoding="utf-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comentarios en: Quiz sobre C#</title>
	<atom:link href="http://www.buayacorp.com/archivos/quiz-sobre-csharp/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.buayacorp.com/archivos/quiz-sobre-csharp/</link>
	<description>Diseño y Programación</description>
	<lastBuildDate>Wed, 08 Feb 2012 16:34:31 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>Por: xavier</title>
		<link>http://www.buayacorp.com/archivos/quiz-sobre-csharp/#comment-726</link>
		<dc:creator>xavier</dc:creator>
		<pubDate>Fri, 23 Dec 2005 17:48:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.buayacorp.com/archivos/quiz-sobre-c/#comment-726</guid>
		<description>por favor, me gustaria que me respondan cual es la diferencia entre metodos y operadores.
Gracias
Xavier</description>
		<content:encoded><![CDATA[<p>por favor, me gustaria que me respondan cual es la diferencia entre metodos y operadores.<br />
Gracias<br />
Xavier</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Rastafari</title>
		<link>http://www.buayacorp.com/archivos/quiz-sobre-csharp/#comment-433</link>
		<dc:creator>Rastafari</dc:creator>
		<pubDate>Wed, 05 Oct 2005 22:02:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.buayacorp.com/archivos/quiz-sobre-c/#comment-433</guid>
		<description>Lo que hay hacer es no usar sobrecarga de operadores, eso nos ahorrara dolores de cabeza.

si la cosa hubiera sido algo como:

public static string Sumar(string msg, Q1 q)
{ Sumar(msg,q);}

la recursividad hubiera resultado evidente, por contra al usar sobrecarga de operadores resulta que un código realmente simple se convierte en un &quot;quiz&quot;, conclusión, la sobrecarga de operadores sirve para generar un código más confuso, menos mantenible y más propenso a errores, mejor no usarla y escribir un método normal y corriente.
</description>
		<content:encoded><![CDATA[<p>Lo que hay hacer es no usar sobrecarga de operadores, eso nos ahorrara dolores de cabeza.</p>
<p>si la cosa hubiera sido algo como:</p>
<p>public static string Sumar(string msg, Q1 q)<br />
{ Sumar(msg,q);}</p>
<p>la recursividad hubiera resultado evidente, por contra al usar sobrecarga de operadores resulta que un código realmente simple se convierte en un "quiz", conclusión, la sobrecarga de operadores sirve para generar un código más confuso, menos mantenible y más propenso a errores, mejor no usarla y escribir un método normal y corriente.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: kiz</title>
		<link>http://www.buayacorp.com/archivos/quiz-sobre-csharp/#comment-432</link>
		<dc:creator>kiz</dc:creator>
		<pubDate>Wed, 05 Oct 2005 17:52:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.buayacorp.com/archivos/quiz-sobre-c/#comment-432</guid>
		<description>¡Me gané una chochona! jejejeje

Bueno creo que hay que mencionar también que no, el catch no hace captura ninguna puesto que Q1 no hereda de StackOverflowException.

Y una custión que sería bueno resolver es ¿Cuál sería la manera de evitar este tipo de situaciones?

A mi juicio la forma más recomendable es nunca usar el objeto completo para conseguir el resultado de una operación. En el quiz si tuviéramos algo como &quot;Q1 a = new Q1();&quot; y en el la asignación a valor &quot;string valor = &quot;Value: &quot; + a;&quot; también se produciría un StackOverflowException. Por eso mismo usamos el objeto Q1 en su totalidad.

Sería algo como lo que esta implementado en el Quiz al que haces referencia. En la sobrecarga del operador &quot;return i + q.Message.Length;&quot; esto evita un StackOverflowException y lo que se genera es un NullReferenceException. El motivo es que se intenta llegar a una propiedad de un campo de un objeto que no ha sido inicializado &quot;q.Message.Length&quot;. Y la forma de evitarlo vendría ser comprobar siempre que los parametros tienen lo que deben tener. O sea, hacer algo cuando se da el siguiente caso &quot;if ((q == null)&#124;&#124;(q.Message == null))&quot;</description>
		<content:encoded><![CDATA[<p>¡Me gané una chochona! jejejeje</p>
<p>Bueno creo que hay que mencionar también que no, el catch no hace captura ninguna puesto que Q1 no hereda de StackOverflowException.</p>
<p>Y una custión que sería bueno resolver es ¿Cuál sería la manera de evitar este tipo de situaciones?</p>
<p>A mi juicio la forma más recomendable es nunca usar el objeto completo para conseguir el resultado de una operación. En el quiz si tuviéramos algo como "Q1 a = new Q1();" y en el la asignación a valor "string valor = "Value: " + a;" también se produciría un StackOverflowException. Por eso mismo usamos el objeto Q1 en su totalidad.</p>
<p>Sería algo como lo que esta implementado en el Quiz al que haces referencia. En la sobrecarga del operador "return i + q.Message.Length;" esto evita un StackOverflowException y lo que se genera es un NullReferenceException. El motivo es que se intenta llegar a una propiedad de un campo de un objeto que no ha sido inicializado "q.Message.Length". Y la forma de evitarlo vendría ser comprobar siempre que los parametros tienen lo que deben tener. O sea, hacer algo cuando se da el siguiente caso "if ((q == null)||(q.Message == null))"</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Quiz sobre C#</title>
		<link>http://www.buayacorp.com/archivos/quiz-sobre-csharp/#comment-430</link>
		<dc:creator>Quiz sobre C#</dc:creator>
		<pubDate>Wed, 05 Oct 2005 04:02:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.buayacorp.com/archivos/quiz-sobre-c/#comment-430</guid>
		<description>[...] o de tipoQ1 en el segundo, es por eso que se hace recursivo (return msg+Q1;) como menciona Kiz.					 					    					 				 						 				 				 			 				 		 		   	4 comentarios a [...]</description>
		<content:encoded><![CDATA[<p>[...] o de tipoQ1 en el segundo, es por eso que se hace recursivo (return msg+Q1;) como menciona Kiz.					 					    					 				 						 				 				 			 				 		 		   	4 comentarios a [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: pkito</title>
		<link>http://www.buayacorp.com/archivos/quiz-sobre-csharp/#comment-424</link>
		<dc:creator>pkito</dc:creator>
		<pubDate>Tue, 04 Oct 2005 13:38:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.buayacorp.com/archivos/quiz-sobre-c/#comment-424</guid>
		<description>Genera un NullReferenceException al utilizar el operador + de la clase string entre msg y null. No estoy seguro de si el catch capturaría la excepción, pero en cualquier caso, después volvería a lanzarla así que al final siempre se genera el NullReferenceException.</description>
		<content:encoded><![CDATA[<p>Genera un NullReferenceException al utilizar el operador + de la clase string entre msg y null. No estoy seguro de si el catch capturaría la excepción, pero en cualquier caso, después volvería a lanzarla así que al final siempre se genera el NullReferenceException.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Web Log di Adrian Florea</title>
		<link>http://www.buayacorp.com/archivos/quiz-sobre-csharp/#comment-423</link>
		<dc:creator>Web Log di Adrian Florea</dc:creator>
		<pubDate>Tue, 04 Oct 2005 11:22:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.buayacorp.com/archivos/quiz-sobre-c/#comment-423</guid>
		<description>&lt;strong&gt;Vengo da un quiz lontano&lt;/strong&gt;

</description>
		<content:encoded><![CDATA[<p><strong>Vengo da un quiz lontano</strong></p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Guti</title>
		<link>http://www.buayacorp.com/archivos/quiz-sobre-csharp/#comment-422</link>
		<dc:creator>Guti</dc:creator>
		<pubDate>Tue, 04 Oct 2005 08:35:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.buayacorp.com/archivos/quiz-sobre-c/#comment-422</guid>
		<description>C# no es de mis lenguajes favoritos, pero yo diría que retorna NullReferenceException.</description>
		<content:encoded><![CDATA[<p>C# no es de mis lenguajes favoritos, pero yo diría que retorna NullReferenceException.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: kiz</title>
		<link>http://www.buayacorp.com/archivos/quiz-sobre-csharp/#comment-421</link>
		<dc:creator>kiz</dc:creator>
		<pubDate>Mon, 03 Oct 2005 20:57:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.buayacorp.com/archivos/quiz-sobre-c/#comment-421</guid>
		<description>StackOverflowException, porque hay una llamada recursiva eterna en &quot;return msg + q;&quot;
</description>
		<content:encoded><![CDATA[<p>StackOverflowException, porque hay una llamada recursiva eterna en "return msg + q;"</p>
]]></content:encoded>
	</item>
</channel>
</rss>

