2

「return (byte)SaleMode.ToPost;」行で「SetSaleMode」を使用したい場合、これらのフィールドとこれらの静的メソッドを持つクラスがあります。このエラーが発生しました。誰か助けてくれますか?

これらは私のコードです:

public enum SaleMode:byte { ToPost = 0、ダウンロード可能 = 1、DownloadableAndFreeTrial = 2、SourceSiteSale = 3 };
public enum FilePriceMode { ProductFile = 0、Free = 1、FreeTrial = 2 };

パブリック クラス ProductDAL : BaseDAL {

#region fields public Int64 ID { get; set; } public string Name { get; set; } public Int64 Price { get; set; } public bool Private { get; set; } public Int64 ProductType { get; set; } public string Notes { get; set; } public string Image { get; set; } public DateTime Date { get; set; } public Int64 Owner { get; set; } public long Counter { get; set; } public bool Proved { get; set; } public byte[] Files { get; set; } public byte SaleMode { get; set; } public string SourceSiteSaleAddress { get; set; } public List<FilesOfProductsDAL> FOfPro; #endregion fields #region constructor public ProductDAL() { ID = -1; FOfPro = new List<FilesOfProductsDAL>(); } public ProductDAL(string saveIconPath) { ID = -1; this.Image = saveIconPath; FOfPro = new List<FilesOfProductsDAL>(); } #endregion constructor #region method public static long InsertProduct(ProductDAL objProductDAL) { try { Int64 ID; objProductDAL.SaleMode = SetSaleMode(objProductDAL); SqlCommand Sqlcomm = new SqlCommand(); Sqlcomm.CommandText = StoreQueries.InsertProduct; Sqlcomm.CommandType = CommandType.StoredProcedure; Sqlcomm.Parameters.AddWithValue("@Name", SqlDbType.NVarChar).Value = objProductDAL.Name; Sqlcomm.Parameters.AddWithValue("@Price", SqlDbType.BigInt).Value = objProductDAL.Price; Sqlcomm.Parameters.AddWithValue("@Private", SqlDbType.Bit).Value = objProductDAL.Private; Sqlcomm.Parameters.AddWithValue("@ProductType", SqlDbType.BigInt).Value = objProductDAL.ProductType; Sqlcomm.Parameters.AddWithValue("@Notes", SqlDbType.NVarChar).Value = objProductDAL.Notes; Sqlcomm.Parameters.AddWithValue("@Date", SqlDbType.DateTime).Value = objProductDAL.Date; Sqlcomm.Parameters.AddWithValue("@Image", SqlDbType.NVarChar).Value = objProductDAL.Image; Sqlcomm.Parameters.AddWithValue("@Owner", SqlDbType.BigInt).Value = 1019;//objProductDL.Owner ; Sqlcomm.Parameters.AddWithValue("@SaleMode", SqlDbType.VarBinary).Value = objProductDAL.SaleMode; if (objProductDAL.Files == null) Sqlcomm.Parameters.AddWithValue("@Files", SqlDbType.VarBinary).Value =System.Data.SqlTypes.SqlBinary.Null;// DBNull.Value; else Sqlcomm.Parameters.AddWithValue("@Files", SqlDbType.VarBinary).Value = objProductDAL.Files; if (objProductDAL.SourceSiteSaleAddress == null) Sqlcomm.Parameters.AddWithValue("@SourceSiteSaleAddress", SqlDbType.NVarChar).Value = DBNull.Value; else Sqlcomm.Parameters.AddWithValue("@SourceSiteSaleAddress", SqlDbType.NVarChar).Value = objProductDAL.SourceSiteSaleAddress; Sqlcomm.Parameters.AddWithValue("@CheangedSet", SqlDbType.NVarChar).Value = "محصول جدید است."; Sqlcomm.Parameters.AddWithValue("PID", SqlDbType.BigInt).Value =objProductDAL.ID; ID = Convert.ToInt64(ExecuteScalar(Sqlcomm)); objProductDAL.Image = objProductDAL.Image.Replace(Path.GetFileNameWithoutExtension(objProductDAL.Image), ID.ToString() ); for (int i = 0; i <objProductDAL.FOfPro.Count; i++) { objProductDAL.FOfPro[i].FileUrl = objProductDAL.FOfPro[i].FileUrl.Replace(Path.GetFileNameWithoutExtension(objProductDAL.FOfPro[i].FileUrl), Path.GetFileNameWithoutExtension(objProductDAL.FOfPro[i].FileUrl) + "." + ID.ToString() + "." + i.ToString()); } UpdateFileAndImageUrl(Store.SerializeData(objProductDAL.FOfPro), objProductDAL.Image, ID); return ID; } catch (Exception) { throw; } } private static byte SetSaleMode(ProductDAL objProductDAL) { if (objProductDAL.SourceSiteSaleAddress == null || objProductDAL.SourceSiteSaleAddress == "") { if (!ProductTypesDAL.IsDownloadable(objProductDAL.ProductType)) return (byte)SaleMode.ToPost; if (objProductDAL.FOfPro.Exists(priceMode => priceMode.FilePriceMode == (int)FilePriceMode.FreeTrial)) return (byte)SaleMode.DownloadableAndFreeTrial; else return (byte)SaleMode.Downloadable; } else return (byte)SaleMode.SourceSiteSale; }

}

4

1 に答える 1

6

SaleMode列挙型と同じ名前のプロパティがありますSaleMode

クラス内で使用する場合SaleModeは、列挙型ではなくプロパティを参照しています。プロパティは、スコープ全体で列挙型をシャドウします。

列挙型と競合しないように、プロパティの名前を変更することをお勧めします。

于 2012-05-30T16:26:16.837 に答える