ورود

View Full Version : Inheritance



ali643
شنبه 21 مرداد 1385, 19:29 عصر
سلام


در سورس یه وب سایت دیدم که برنامه نویس یه کلاس به نام BASE تعریف کرده بود با متحویات زیر



public abstract class Base
{
protected MyDataSet _dataSet = null;

protected System.Data.SqlClient.SqlDataReader _dataReader = null;
protected System.Data.SqlClient.SqlConnection _connection = null;
protected System.Data.SqlClient.SqlDataAdapter _dataAdapter = null;
protected System.Data.SqlClient.SqlCommandBuilder _commandBuilder = null;

public Base()
{
}
}




بعد در سایر کلاس های برنامش فرزند کلاس BASE می شدند
حالا آیا _connection به صورت protected هست؟


_connection = new System.Data.SqlClient.SqlConnection();
_dataAdapter = new System.Data.SqlClient.SqlDataAdapter(strSql, _connection);
_commandBuilder = new System.Data.SqlClient.SqlCommandBuilder(_dataAdapt er);

لازم به ذکر است که در هیچ یک از فایلهای CS عمل Using رو انجام ندادم فقط Class های که خودش نوشته رو توسط یه نام NameSpace استفاده می کنه و اونا رو فقط using کرده است

تعریف Abstract(طبق جزوه استاد وحید نصیری)= از این نوع کلاس ها نمی توان Instance ایی را ایجاد نمود.در این کلاس ها ی پایه صرفا تعریف متدها و خواص هایی عنوان گردیده و در

آینده در کلاس های فرزند توسعه داده خواهد شد.

حالا توسعه این متد ها و خواص داره تو کلاس فرزند انجام میشه (منظورم اینه که پاس دادن دستور sql و غیره توسعه حساب میشه؟)
حالا این کاری رو که طرف انجام داده چه فایدهای داره؟

آیا میشه گفت کاره های واجب تر و امنیتی تر رو با Protected انجام داده و برای کار دیگه مثل در آوردن آخرین ID از Connection , Command,Adaptor را به شکل زیر تعریف کرده



System.Data.SqlClient.SqlCommand oCommand = null;
System.Data.SqlClient.SqlDataReader oDataReader = null;
System.Data.SqlClient.SqlConnection oConnection = null;



پ.ن=CommandBuilder چه کار ازش بر می آید؟



مرسی