gpt4 book ai didi

c# - 我所有的参数都应该在构造函数中吗?

转载 作者:行者123 更新时间:2023-11-30 14:16:37 25 4
gpt4 key购买 nike

我有一个类 StreamCopyOperation,它为我提供了复制操作的平均速度和其他信息。

现在我有一个构造函数,它看起来像

public StreamCopyOperation(Stream source, Stream target, int bufferSize, int updateInterval)
{
//Initialize values
}

和一个方法

public void CopyStream()
{
//Copy the streams, send the progress updates, etc...
}

现在我不知道是否所有的参数都应该在构造函数中,或者流应该像这样在方法中传递:

public void CopyStream(Stream source, Stream target)
{
//Copy the streams, send the progress updates, etc...
}

并且构造函数仅获取缓冲区大小和传递的更新间隔。或者也许一切都应该在 CopyStream 方法中。

是否有类似最佳实践的东西,或者这只是一个设计决策?

最佳答案

我认为这是一个基于您期望如何使用该类的设计决策。

如果它是一次使用类型的类,那么也许所有参数都应该传递给构造函数,然后设置任何其他属性,然后调用 CopyStream(不带参数)。

但是,如果您希望流参数发生变化,则不要将它们传递到构造函数中,而是将值传递到 CopyStream 方法中。

最后,如果它确实更像是一种一次性使用类型的类,那么也许您应该将该类视为 static 类,而将 CopyStream 视为静态类 --为您节省一行代码,并使该类更像是一种辅助类。

希望这对您有所帮助!

关于c# - 我所有的参数都应该在构造函数中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7179641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com