Generator.OnGenerateNextValues 方法
根據資料產生演算法產生下一個值。
命名空間: Microsoft.Data.Schema.Tools.DataGenerator
組件: Microsoft.Data.Schema.Tools (在 Microsoft.Data.Schema.Tools.dll 中)
語法
'宣告
Protected Overridable Sub OnGenerateNextValues
protected virtual void OnGenerateNextValues()
protected:
virtual void OnGenerateNextValues()
abstract OnGenerateNextValues : unit -> unit
override OnGenerateNextValues : unit -> unit
protected function OnGenerateNextValues()
備註
當資料產生計劃執行時,OnGenerateNextValues 方法就會建立資料。 您必須覆寫此方法來提供邏輯,以便為資料產生器的輸出屬性產生資料。
GenerateNextValues 方法會呼叫這個方法。 若要修改 GenerateNextValues的功能,您必須覆寫 OnGenerateNextValues。
範例
這個範例會覆寫 OnGenerateNextValues 方法,以便針對資料產生器產生隨機資料。 這個程式碼範例是 Generator 類別完整範例的一部分。
DateTime mRandomDate;
Random mRandom;
Random mRandomRange;
protected override void OnGenerateNextValues()
{
DateTime min;
DateTime max;
// Generate a random date from either range 1 or range 2.
// Randomly select either range 1 or range 2 by randomly
// generating an odd or an even random number.
if (mRandomRange.Next() % 2 == 0) //check for odd or even
{
min = mRange1Min;
max = mRange1Max;
}
else
{
min = mRange2Min;
max = mRange2Max;
}
// The formula for creating a random number in a specific range is:
// start of range + (size of range * random number between 0 and 1)
// Size of range
TimeSpan range = max - min;
// (Size of range * random number between 0 and 1)
TimeSpan randomNumber = new TimeSpan((long)(range.Ticks * mRandom.NextDouble()));
// Start of range + (size of range * random number between 0 and 1)
mRandomDate = min + randomNumber;
}
Dim mRandomDate As Date
Dim mRandom As Random
Dim mRandomRange As Random
Protected Overrides Sub OnGenerateNextValues()
Dim min As Date
Dim max As Date
' Generate a random date from either range 1 or range 2.
' Randomly select either range 1 or range 2 by randomly
' generating an odd or an even random number.
' Check for odd or even
If mRandomRange.Next() Mod 2 = 0 Then
min = mRange1Min
max = mRange1Max
Else
min = mRange2Min
max = mRange2Max
End If
' The formula for creating a random number in a specific range is:
' start of range + (size of range * random number between 0 and 1)
' Size of range
Dim range As TimeSpan = max - min
' (Size of range * random number between 0 and 1)
Dim randomNumber As TimeSpan = _
New TimeSpan(CLng(range.Ticks * mRandom.NextDouble()))
' Start of range + (size of range * random number between 0 and 1)
mRandomDate = min + randomNumber
.NET Framework 安全性
- 完全信任立即呼叫者。這個成員無法供部分信任的程式碼使用。如需詳細資訊,請參閱從部分受信任程式碼使用程式庫。