c#如何重载ToString方法...
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#如何重载ToString方法...相关的知识,希望对你有一定的参考价值。
这是一个ashx文件,如图
这个context.Request[]本来就是string类型的,但是估计是继承了object下的ToString()方法,
也就是可以context.Request[].ToString()这样用...
我现在想重载这个ToString()方法可以吗?
我想让这个ToString() 判断如果这个context.Request[]是NULL,或者空串,或者是“undefined”的话统一返回null值,其他返回字符串。可以做到么
注意,不要让我另外弄个函数,把这个context.Request[]传进来,然后判断,这个谁都懂...
而是加了也没用。。。。context.Request[*] 当这个元素都是Null了。。。。连你加的那个函数的实例都没有你怎么调用。。。。
而且,你的意思是当context.Request[*] 为null时返回null。。。。什么 意义呢,他本身不就是Null了还用得着调谁追问
NULL是临时想到的,因为我的数据不会有NULL
只是空串,跟undefined
前台传过来的参数有9个,如果我在前台判断这个参数是不是空串或者undefined的,
要9个if..看起来很难看...
现在就想是不管前台的值有没有赋值,如果没有赋值,那就传undefined过去了,我就想通过那边的toString如果是undefined的,我就转一下。
而且在对象后面按.就能调出方法了,这样比较方便
那可以通过 扩展函数解决;
public static string ReplaceUndefinedToNull(this string str)
if(str == ""||str=="undfined")
return null
else
return str;
Arrays 类中的 .toString() 是如何重载的
【中文标题】Arrays 类中的 .toString() 是如何重载的【英文标题】:How is the .toString() overloaded in the Arrays class 【发布时间】:2021-09-14 22:36:26 【问题描述】:我遇到了一个方法不能同时被覆盖和重载的概念。但是当我使用 Arrays.toString() 时,
如果我错了,请纠正我,但 toString() 方法已同时被覆盖和重载。这怎么可能?
【问题讨论】:
不,Arrays
没有不带参数的 toString
方法,因此这里没有任何内容被覆盖。
你错了。您可以创建一个覆盖toString()
的类(注意,没有参数)并使用参数重载toString
。
顺便说一句,一般一个方法可以有多个重载版本,每个重载版本也可以是覆盖,或者依次被覆盖;所以我不认为“不能同时被覆盖和重载”是什么意思很清楚。但是 Arrays 方法是静态的,所以覆盖甚至不入画面。
@MCEmperor @user7 谢谢。我明白了。 @khelwood。如果我的问题不清楚,我很抱歉,但我所说的“不能同时被覆盖和重载”的意思是有没有办法覆盖一个方法,然后重载它。例如。我正在覆盖MyClass
类中的 .hashcode() 方法,我现在可以重载它吗?
为什么要重载 hashCode()?使用依赖于具有单个哈希码的任何给定对象。
【参考方案1】:
当您在子类中具有完全相同的方法签名时,您将被覆盖。当您有两个具有不同类型或参数数量的相同命名方法时,您正在重载。您可以覆盖一个方法,然后重载它,但您可以编写一个方法,当您重载它时,您最终会覆盖一个超类方法。一件事不排斥另一件事。
让我们有一个这样的 Super 类:
public class Super
public void testMethod()
// Overload
public void testMethod(String param)
然后用这样的子类扩展它:
public class Sub extends Super
// Override only
@Override
public void testMethod()
// Overload only
public void testMethod(int param)
// Overload and Override
@Override
public void testMethod(String param)
如您所见,您可以通过多种方式仅重载、仅覆盖或两者兼有。如前所述,一件事并不排斥另一件事。
【讨论】:
以上是关于c#如何重载ToString方法...的主要内容,如果未能解决你的问题,请参考以下文章