PDA

View Full Version : مفهوم Casting در این کد چیه ؟



seyedVB
شنبه 07 دی 1387, 23:25 عصر
class CustomFrame:Frame
{
protected Matrix customTransform = Matrix.Identity;
public CustomFrame(string name)
{
this.Name = name;

}
public Matrix CustomTransform
{
get { return customTransform; }
set { customTransform = value; }
}
}

///End Class
////////////////////////////////////////////////////////////////////////////////////////////////
/// Another Class////

class MyClass
{
public CustomFrame GetFrame(string Fname)
{
return (CustomFrame)Frame.Find(rootFrame.FrameHierarchy, Fname);
}
}می خواستم بدونم کلاس Custom Frame که باش یک متد در کلاس My Class ساختم ،
کلا این متد چه بلایی سر کلاس Custom Frame میاره ....
_---------------------------------------------------------------

نه اینکه توضیح بدید که تابع Find چی میکنه ؟ لطفا توضیح بدید اینو :

مثلا می میگیم :

public int myMethod()
{
}ولی اینجا گفته :

public CustomFrame myMethod()
{
}این سوال منه ...

یعنی خروجی از نوعی Custom Frame هست ؟

Amir Oveisi
یک شنبه 08 دی 1387, 09:59 صبح
بله دوست عزیز

h.jaza
یک شنبه 08 دی 1387, 10:13 صبح
یعنی خروجی از نوعی CustomFrame هست ؟
بله، دقیقا همینطوره. در واقع خروجی باید از نوع Custom Frame باشه.

شما اومدی و در کلاس MyClass یه متد با نام GetFrame از نوع CustomFrame ساختی. بعد با رد کردن مقدار به تابع سازنده ی CustomFrame اومدی و مقدار داده شده ی Fname رو در this.Name پر کردی و در انتها متدی از Frame رو فراخوانی کردی که چون ظاهرا مقدار بازگشتیش از نوع CustomFrame نبوده، Cast اش کردی و اون رو به CustomFrame ای که باید باشه تبدیل کردی.

همین

seyedVB
یک شنبه 08 دی 1387, 19:14 عصر
ممنون
حل شد