我有一个计算图像大小的基类。我从中派生了一个类,并具有将在我的代码中使用的预定义图像大小。虽然我的工作有效,但我有一种强烈的感觉,就是我做得不好。
理想情况下,我只想将 DerviedClass.PreviewSize 作为参数传递给 GetWidth,而不必创建它的实例。
class Program
{
static void Main(string[] args)
{
ProfilePics d = new ProfilePics();
Guid UserId = Guid.NewGuid();
ProfilePics.Preview PreviewSize = new ProfilePics.Preview();
d.Save(UserId, PreviewSize);
}
}
class ProfilePicsBase
{
public interface ISize
{
int Width { get; }
int Height { get; }
}
public void Save(Guid UserId, ISize Size)
{
string PicPath = GetTempPath(UserId);
Media.ResizeImage(PicPath, Size.Width, Size.Height);
}
}
class ProfilePics : ProfilePicsBase
{
public class Preview : ISize
{
public int Width { get { return 200; } }
public int Height { get { return 160; } }
}
}